Сер. 10. 2011. Вып. 3
ВЕСТНИК САНКТ-ПЕТЕРБУРГСКОГО УНИВЕРСИТЕТА
УДК 621.397.422.1 О. П. Исаев
РЕАЛИЗАЦИЯ РАНДОМИЗИРОВАННОГО МЕТОДА СЖАТИЯ ИЗОБРАЖЕНИЙ НА БАЗЕ ПРОГРАММИРУЕМОЙ ЛОГИЧЕСКОЙ ИНТЕГРАЛЬНОЙ СХЕМЫ
1. Введение. Теория обработки информации начала активно развиваться в начале XX в. под растущим спросом на телемеханические системы передачи данных и управления. С появлением вычислительных машин и развитием локальных сетей, а затем и Всемирной паутины непрерывно росли новые требования к обработке текстов и аудиовизуальной информации. Так, желание максимально сократить объем передаваемых данных привело к разработке новых алгоритмов сжатия, а вместе с ними и новых технологий, как, например, потоковая передача данных, получившая широкое распространение, особенно в мультимедийном контенте.
Увеличение вычислительной мощности позволило обрабатывать еще больший объем данных, и, как следствие, появилась возможность предоставлять пользователям более качественные услуги. В настоящее время намечается тенденция перехода от обычного телевизионного стандарта к стандарту видео высокой четкости. Вместе с тем растущая популярность 3-Б-технологий требует еще больших производительности систем и пропускной способности каналов передачи данных. Но высокая производительность приводит к значительным энергозатратам, что неприемлемо для мобильных систем, для которых понятие «энергоэффективность» стоит не на последнем месте. Таким образом, для решения задач на современном уровне нужны комплексные подходы, включающие в себя последние технологические достижения, а также новые, более эффективные методы и алгоритмы обработки информации.
В статье рассматриваются как традиционные подходы в области сжатия изображений, так и предлагается новая система, поддерживающая метод сжатия информации на базе принципов Compresive Sensing (CS) [1]. Новый принцип работает на прямом получении сжатого сигнала из входного потока данных и реконструкции его через оптимизацию, основанную на ¿4-норме. В соответствии с парадигмой CS вместо кодирования кадров по некоторому закону можно напрямую прореживать сигнал с помощью случайной матрицы Ф размером m х K, где m - число измерений, а K = M х N определяется размером входного двумерного потока данных X. Элементы данной случайной матрицы могут принимать значения: {-1, 0, +1}. Для такого кодирования достаточно провести ряд сложений и одно деление для нормализации выходной величины. Так как размер блоков, на которые разбивается входной поток X, обычно кратен двум в степени п, где п - целое, то деление можно заменить на операцию сдвига.
Исаев Олег Петрович — аспирант кафедры системного программирования математико-механического факультета Санкт-Петербургского государственного унверситета. Научный руководитель: кандидат физико-математических наук, доц. Н. Ф. Фоминых. Количество опубликованных работ: 1. Научное направление: рандомизированные алгоритмы многомерного оценивания и оптимизации. E-mail: [email protected].
© О. П. Исаев, 2011
Цель представляемой статьи - проверка гипотезы о том, что при аппаратной реализации кодера по сравнению с традиционными методами будет достигнут значительный выигрыш по занимаемому количеству вентилей в кристалле, а также по частоте его работы. Для этого необходимо получить разреженное представление тестового сигнала и алгоритм для его последующего восстановления. Кроме того, нужно решить вопрос о формировании такой матрицы преобразования Ф, чтобы такое восстановление было возможным. Наконец, следует подобрать оптимальный алгоритм реконструкции прореженных данных, дающий минимальную ошибку восстановления при максимальном коэффициенте сжатия, а также оценить объем вентилей для реализации такого рандомизированного кодера.
2. Трансформирующее кодирование. При сжатии изображения принимают во внимание тот факт, что соседние пиксели с высокой вероятностью будут либо подобны друг другу, либо отличаться на небольшую величину. И если к изображению применить математическое преобразование, которое уберет взаимную корреляцию между соседними пикселями, то в результате размер массива данных сократится. И чем больше подобных элементов будет иметь массив данных, тем лучше сожмется информация.
Существует несколько подходов, которые производят декорреляцию соседних пикселей. Каждый из них имеет свои достоинства и недостатки. Рассмотрим основные методы [2]:
• дискретно-косинусное преобразование (DCT) - частный случай дискретного преобразования Фурье, обладает хорошей способностью убирать взаимную корреляцию из массивов данных;
• преобразование Кархунена-Лоэвэ - наилучший метод концентрации энергии, который, однако, требует подбора и хранения коэффициентов для каждого изображения отдельно, что является трудоемким и затратным по месту, занимаемому на хранение коэффициентов, нивелируя преимущества перед DCT;
• преобразование Уолша-Адамара - уступает по эффективности сжатию с использованием DCT, но пригодно для реализации достаточно простых операций в виде сложений, вычитаний и, иногда, одного сдвига вправо;
• преобразование Хаара - вейвлет-преобразование.
Наиболее широкое распространение из представленного списка получил подход на основе DCT в силу его достаточно простой реализации и высокой скорости работы. В результате этого DCT активно применяется в стандартных алгоритмах сжатия аудиовизуальной информации. В частности, оно используется в таких известных стандартах как MP3, JPEG и MPEG.
В настоящее время все большее распространение получает новый формат сжатия видео H.264. Он основан на двумерном дискретном вейвлет-преобразовании, для его реализации необходимы динамические вычисления коэффициентов «полосовых» фильтров, как в случае Кархунена-Лоэвэ, он достаточно сложен в реализации и накладывает дополнительные требования на аппаратные ресурсы. На практике реализации алгоритмов H.264 чаще всего представлены на базе того или иного специализированного сигнального процессора (DSP). Несмотря на все недостатки, этот алгоритм сжимает эффективнее, чем MPEG, и считается форматом сжатия следующего поколения.
2.1. Дискретно-косинусное преобразование (DCT). При работе с 2^-изобра-жениями используется двумерное дискретно-косинусное преобразование DCT-II:
M-1 N-1
г=0 j=0
где X^ - входной двумерный поток данных размером М х N; коэффициенты С\ и С^ можно вычислить как
Выражение (1) является симметричным, т. е. объем данных, поданных на вход и принятых на выходе, равны. Для упрощения вычислений на практике используют одномерное DCT, последовательно примененное 2 раза к входному массиву данных. Это вызвано тем, что DCT преобразования в математическом смысле можно интерпретировать как переход от одного базиса к другому, а в геометрическом - как вращение. А два вращения матрицы размером M х N выполнить проще, чем одно вращение матрицы размером M2 х N2.
Отметим, что для обработки звука используют модифицированную одномерную версию дискретно-косинусного преобразования (MDCT) на базе DCT-IV. Отличие от DCT-II состоит в том, что на выходе порождается объем данных, в 2 раза меньший, чем было подано на вход [3].
2.2. Сжатие изображения на основе DCT. Используя DCT-II преобразование, без дополнительных мер можно сократить объем информации за счет устранения избыточной информации (в лучшем случае до 2 раз). При этом обратное преобразование IDCT-II полностью восстановит исходные данные. Такое сжатие называют сжатием без потерь [2].
Для сжатия изображения с потерями проделывают ряд дополнительных действий. Они стандартные и включают в себя следующие шаги:
• квантование;
• энтропийное сжатие;
• упаковку данных в стандартный контейнер.
Цель квантования состоит в получении наименьшего количества ненулевых компонентов в матрице преобразования при заданном качестве изображения. Для его выполнения пользуются таблицей квантования. Стандартом JPEG заданы четыре стандартные таблицы, коэффициенты которых подобраны экспериментально. Их значения можно менять по своему усмотрению. После квантования коэффициенты округляются до ближайшего целого числа. При правильно проведенной операции квантования наибольшие числа останутся в левом верхнем углу, а в правом нижнем будут преимущественно нули. Практическим результатом является то, что убирается лишняя информация, неразличимая для глаз. После проводится Zig-Zag сканирование, в результате которого матрица размером M х N преобразовывается в вектор-строку. Причем вытягивание в строку производится так, чтобы после преобразования данные убывали слева направо.
Далее берутся только ненулевые компоненты и упаковываются архиватором, чаще всего применяется метод Хаффмана. Более прогрессивные программы сжатия могут использовать арифметическое кодирование с несколькими проходами по дереву.
Какие таблицы использовались и какое сжатие было применено, указывается в стандартном файле-контейнере, в который упаковываются служебная информация в заданном формате и сжатое изображение. Если при сжатии использовались стандартные таблицы, то контейнер может содержать меньше информации, что позволяет дополнительно сэкономить место в файле.
при i = 0, при i = 0,
при j = 0, при j = 0.
Для большей оптимизации аппаратных и вычислительных ресурсов перед устранением избыточности проводят выравнивание входного потока, в процессе которого данные разбивают на блоки. Для стандарта JPEG блоки фиксированы размером 8 х 8 пикселей. В результате сокращается вычислительная сложность и экономится внутренняя память, используемая для хранения промежуточных результатов преобразования. Кроме того, появляются дополнительные пути и возможности для распараллеливания обработки изображения, так как все блоки могут преобразовываться независимо друг от друга.
Типовая архитектура кодера имеет вид, представленный на рис. 1.
Подготовка входного потока
Упаковка в стандартный контейнер
Рис. 1. Типовая архитектура кодера
2.3. Аппаратные решения для трансформирующего кодирования. Трансформирующее кодирование на базе DCT достаточно просто реализовать аппаратно. В формуле (1) можно заметить, что коэффициенты Ci и Cj, а также значения косинусов для каждого шага можно вычислить один раз и затем результаты хранить в постоянной памяти устройства. Отсюда имеем, что для расчета DCT необходимо иметь входной поток данных, каждый элемент в котором умножается на константу, соответствующую текущему шагу, и результат суммируется с полученными значениями на предыдущих шагах.
Количества элементарных операций для различных методов вычисления DCT представлены в табл. 1 [4].
Таблица 1. Ресурсы для реализации DCT
Метод У множитель Сдвиг Сумматор
Прямое одномерное DCT 64 0 56
Chen 16 0 26
Zoeffler 11 0 29
Zoe Huang 12 5 29
AAN 13 6 29
AAN unsealed 5 0 29
Ресурсы, необходимые для реализации на FPGA JPEG кодера для наиболее «легкого» метода AAN unscaled, приведены в табл. 2. Максимальная частота такого кодера составляет 80 МГц на кристалле Spartan3 XC3S1000 фирмы XILINX.
Операция Умножитель, ед. Память, кбит Регистр, ед. Логические элементы, ед.
Выравнивание на входе 0 60 180 160
2-Б-БСТ 10 18 580 1000
Квантование 1 0 35 24
Кодер переменной длины 0 18 660 700
ШЭМ с табличными данными 0 1 0 0
Итого: 11 144 1455 1884
Типовая структурная схема видеокамеры с реализацией алгоритма JPEG сжатия на базе FPGA будет иметь вид, представленный на рис. 2.
Рис. 2. Структурная схема видеокамеры
3. Рандомизированное сжатие изображения. В качестве основы рассмотрим описанную в [5] однопиксельную камеру. Она реализована на базе микроконтроллер-ной системы управления микрозеркалами, линзы, светодиода и аналогово-цифрового преобразователя (АЦП).
В качестве аппаратной реализации прореживающей матрицы Ф используется цифровой микрозеркальный модуль (DMD) с разрешением 1024 х 768 от «Texas Instruments», предназначенный для видеопроекторов. Каждое микрозеркало имеет свою SRAM-память и может позиционироваться независимо от других микрозеркал в положения +12° или —12° по горизонтали. Через объектив изображение фокусируется на зеркальной матрице и отражается либо в сторону двояковыпуклой линзы, либо отклоняется от нее, что, собственно, и обеспечивает прореживание информации. В свою очередь, линза фокусирует прореженный пучок света на фотодиод и через 12-битный АЦП суммарная информация передается в цифровой канал связи [6].
Общая структурная схема устройства на базе однопиксельной камеры представлена на рис. 3.
Рис. 3. Структурная схема однопиксельной камеры в общем виде [5]
Для того чтобы восстановление изображения было возможным, необходимо провести т ^ N х М измерений, при этом происходит позиционирование зеркал для каждого шага измерения по псевдослучайному закону. В частности, авторы статьи [6] использовали распределение Бернулли для генерации прореживающей матрицы Ф.
3.1. Прореживание сигнала. Опишем систему, в которой проводится т измерений у при воздействии т случайных матриц ф на изображение X. Одно измерение можно записать как
_ 1 / т
Уг —
(2)
где і Є [1,т]; размер вектора ф равен К х 1. Здесь К = М х N и определяется размером изображения X, N и М - количество строк и столбцов данного изображения соответственно. Вектор х получен из X путем простой записи матрицы размера М х N в вектор-столбец размером К х 1. Из (2) видно, что в результате і-го измерения получаем просто число у і .
Запишем полный вектор измерений в виде:
У = (У1 ,У2 ,У3 ,---,Ут )Т.
В формуле (2) фТ - строки общей прореживающей матрицы Ф, каждый элемент которой для нашего случая будет принимать значения ‘0’ или ‘1’. Правила выбора стабильной прореживающей матрицы рассмотрены в статьях [7, 8]. В частности, в [8] описана
возможность формирования матрицы Ф некоторым случайным или псевдослучайным методом с некоторой фиксированной вероятностью распределения Ра, которая, впрочем, может изменяться по внешнему требованию.
Запишем формулу получения вектора измерений в виде
где матрица Ф имеет размер т х N и равна Ф = (ф^, фг^,...,фгт).
Выражение (3) описывает трансформацию входного вектора х в У, или, другими словами, производит переход из пространства в пространство Кт, где т < К.
То есть вектор У несет некоторую закодированную информацию об изображении X меньшего размера.
3.2. Восстановление изображения. Для того чтобы восстановить изображение из массива, находящегося в разреженном пространстве, необходимо перейти из одного базиса в другой. Для методов на основе БСТ достаточно решить обратную задачу трансформирующего кодирования (ГОСТ).
В случае системы уравнений (3) задача не может быть решена классическими методами из-за несовпадения соответствующих размеров матриц Ф, х и У.
Для того чтобы восстановить сигнал х € из У = Фх € Кт, где т ^ К,
необходимо решить задачу выпуклой оптимизации:
В статье [9] рассмотрены семь проблем, решение которых сводится к решению подобного рода задач. Они делятся на два класса. Первый класс использует в своей основе решение задачи линейного программирования (LP), второй решает задачу выпуклой оптимизации второго порядка (SOCPs). Для решения задач LP применяется прямодвойственный алгоритм следования вдоль пути, а для задач нелинейного программирования - барьерные логарифмические штрафные функции. Алгоритмы, предназначенные для решения всех семи проблем, приведены в виде библиотеки для среды Matlab, и ее можно скачать по адресу http://www.acm.caltech.edu/l1magic.
Для решения задачи P1 известен метод Basis pursuit (преследование базиса), который заключается в поиске вектора хо, дающего минимум ¿4-нормы. При этом решение х0 будет представлять декодированное изображение.
Если входной сигнал - 2-Б-изображение, то лучший результат восстановления будет давать альтернативная модель, использующая один из SOCPs алгоритмов [9]. Пусть Xi,j - один пиксель изображения X размера п х п, где i и j - номера строки и столбца соответственно, и определен операторами
Величину Dij в формуле (5) можно интерпретировать как класс дискретных градиентов для цифрового изображения X. Полная вариация (total variation) X - это модуль дискретного градиента для каждой точки, его можно вычислить как
Y = Фх,
(3)
(P1) min\\x\\i1 при условии Y = Фх.
(4)
(5)
TV(x) = ]Г ^(Dh;ijXy + (Dv;ijXy = II А,'Х||2.
Для того чтобы восстановить изображение, необходимо решить задачу минимизации полной вариации х:
(TV2) min TV(x) при условии ||Y — Фх|| ^ е. (6)
В отличие от (4) в формулу (6) введено дополнительное ограничение на поиск решения, заданное квадратичной погрешностью е.
3.3. Реализация модели рандомизированного сжатия изображения. Принимающая сторона должна знать, какие именно матрицы фi были использованы в процессе измерения. Это требование накладывает существенные ограничения на реальную систему. Однако задача легко решается при применении псевдослучайного генератора, который работает по одинаковому закону и при одинаковых начальных условиях на обеих сторонах. Очевидно, что реализация адаптивного генератора, который на каждом шаге динамически будет подбирать закон измерения под конкретное изображение, является не оптимальной задачей. Это вытекает из того, что совместно с измерениями необходимо будет передавать для синхронизации работы псевдослучайного генератора и начальные условия, которые на практике будут иметь размеры, превышающие размеры самих данных, а это приведет к дополнительной нагрузке на канал передачи данных и неоптимальному его использованию.
Для простоты моделирования примем, что матрица Ф порождена некоторым случайным законом, значения ее строк для каждого шага измерения будем хранить в памяти вычислительной машины и по мере надобности передавать их значения декодеру для корректного восстановления изображения.
В качестве примера рассмотрим черно-белые картинки, с градацией серого, равной 8 бит. Это связано с тем, что, во-первых, глаз человека более чувствителен к яркости изображения, чем к ее цветовой составляющей, а во-вторых, с черно-белыми картинками проще работать.
Для проведения измерений необходимо иметь следующие компоненты:
• псевдослучайный генератор, с изменяемым законом распределения плотности вероятности следования ‘1’;
• кэш-память для хранения измеряемой матрицы х размером N х M;
• кэш-память для хранения результата измерений Y;
• сумматор.
Апробация алгоритмов сжатия и восстановления была проведена в среде Matlab. Разреженное представление входного сигнала реализовано в виде отдельной функции CS_Encoder. Для декодирования информации реализован восстанавливающий изображение декодер CS_Decoder, основанный на решении проблемы TV минимизации с ограничением на квадратичную ошибку, реализация которого взята из библиотеки «¿4-magic», упомянутой выше.
3.4. Экспериментальные данные по CS сжатию. На первом этапе экспериментов была поставлена цель проверить работоспособность алгоритмов сжатия и восстановления на практике, а также подтвердить верность предположения о способе выбора матрицы измерения Ф. Работа проводилась с числами с плавающей запятой.
На рис. 4 представлен результат работы алгоритма сжатия. Восстановление проводилось при пороге е = 0.01. При его уменьшении до 10~3 шум PSNR уменьшался примерно на 10 дБ. А если порог сократить еще на порядок до значения е = 10~4, то значение PSNR сокращалось еще на 10 дБ. По представленным результатам можно сделать вывод, что зависимость ошибки восстановления от порога точности восстановления е для данной реализации алгоритма имеет нелинейную зависимость.
Рис. 4. Оригинал (а) и три восстановленных изображения 100% (б),
40% (в) и 20% (г) измерений при Pa = 50%
Алгоритм на основе Compressive Sensing является методом сжатия с потерями, и при сжатии и восстановлении одного и того же изображения всегда будет присутствовать нерегулярная ошибка. То есть снижение ошибки при уменьшении порога носит в общем-то условный характер. В качестве подтверждения этого факта проведем серию из трех экспериментов по сжатию и восстановлению изображения, по 100 раз в каждой серии. При этом серии отличаются только количеством измерений т, а плотность вероятности Pa следования единиц в матрице измерения и точность восстановления фиксированы.
Среднеквадратичная
ошибка
0.05
0 ...................................................................................
1 7 13 19 25 31 37 43 49 55 61 67 73 79 85 91 97100
Число экспериментов
Рис. 5. Среднеквадратичная ошибка при Ра = 10%
1 - 20% измерений; 2 - 40% измерений; 3 - 100% измерений.
Результаты эксперимента представлены на рис. 5-7. Из них видно, что чем больше число измерений, тем выше вероятность получить картинку лучшего качества вследствие меньшей флуктуации ошибки относительно некоторого среднего значения. Для оценки качества изображения чаще всего используют пиковое значение сигнал/шум
79 85 91 97100
Число экспериментов
Рис. 6. Пиковое значение еигнал/шум при Ра = 10%
Обозначение см. рис. 5.
(PSNR) и его значение обычно принимают лежащим в диапазоне от 20 до 40 дБ. Как следует из рис. 6, чтобы ошибка не опускалась ниже 20 дБ, необходимо принимать дополнительные меры. Как уже отмечалось выше, первым параметром для такого улучшения является увеличение точности восстановления г. Изменение Ра в большей степени влияет на значения измерений, чем на их точность. Тем не менее при достижении некоторых минимальных и максимальных значений Ра качество картинки заметно ухудшается. И третий, очевидный параметр, влияющий на точность восстановления, -это число измерений: чем их больше, тем она выше. Приведем численные результаты для одного случайно выбранного сжатого изображения из каждой серии эксперимента при Ра = 50%:
Количество
измерений,
т
1024
409
204
Пиковое
отношение
сигнал/шум,
дБ
28.5235
21.7098
19.5096
Отношение
сигнал/шум,
дБ
25.7745
18.9609
16.7607
Средне-
квадратичная
ошибка
0.0014
0.0067
0.0112
Размер
изображения,
пиксель
32 х 32 32 х 32 32 32
Погрешность восстановления, є
0.01
0.01
0.01
На втором этапе экспериментов решалась задача перехода от арифметики с плавающей точкой к фиксированной, с ограничением разрядной сетки до 8 бит, так как при использовании чисел с двойной точностью сжатия изображения не происходит. Наоборот,
сигнал/шум, дБ
Число экспериментов
Рис. 7. Отношение сигнал/шум при Ра = 10%
Обозначение см. рис. 5.
наблюдается увеличение объема информации и чем больше значение Ра, тем больше места она занимает. При упаковке выходных данных обычным архиватором он дает небольшой коэффициент сжатия порядка 15-20%. При сокращении числа наблюдений до 50% получается размер файла, соизмеримый с входным. При сжатии архиватором удавалось его уменьшить на те же 15-20%. Информация восстанавливалась с большей точностью при понижении порога г; также было определено, что уменьшение Ра сокращает размер измерения и до какого-то предела практически не влияет на качество восстановления.
В результате округления резко увеличилась ошибка восстановления. Уменьшение г < 10_3 перестало влиять на точность восстановления. В общем случае был сделан эмпирический вывод, что декодеру не важно, какого размера будет измеренное число, главное, чтобы пропорция между числами из полученных измерений сохранялась наиболее точно. В результате значимым фактором оказались максимальный и минимальный пороги белого. При максимальном пороге измерение не должно выходить за разрядную сетку, а при минимальном его значение не должно быть слишком маленьким, иначе утрачивается информация о градациях серого. При работе с картинкой с широким динамическим диапазоном часть информации необратимо теряется, и необходимы специальные меры для его расширения после реконструкции сигнала. В этом случае вероятность распределения единиц в матрице измерения Ра стала зависеть от размера блоков, на которые было разбито изображение.
Для моделирования был реализован переход от чисел с плавающей запятой к целочисленной арифметике и проведен ряд экспериментов. Приведем результаты для 40% измерений при различных разбиениях на блоки:
Размер
блоков,
пиксель
8 х 8 32 х 32 64 х 64
Погрешность Пиковое
восстановле- отношение
ния, є сигнал/шум,
дБ
0.0473
0.0344
0.0171
13.2497
14.6304
17.6626
Отношение
сигнал/шум,
дБ
9.5324
10.9131
13.9454
Вероятность распределения, Ра,
%
20
10
3
Коэффициент сжатия совместно с архиватором, раз
2.67
2.72
2.65
Из них видно, что наилучший результат по отношению сигнал/шум дает метод, использующий разбиение на блоки по 64 х 64 пикселя.
На рис. 8, а представлены оригинальное тестовое изображение, с которым велась работа, и его гистограмма (б). Полный размер изображения составляет 256 х 256 пикселя. Как видно из рис. 9, по сравнению с оригиналом происходит сужение динамического диапазона, что и показывает гистограмма данного восстановленного изображения. После ручного расширения динамического диапазона субъективное качество картинки улучшается (рис. 10).
Рис. 8. Оригинальное изображение (а) размером 256 х 256 пикселя и его гистограмма (б)
3.5. Аппаратная реализация СБ кодера. Для того чтобы реализовать аппаратный кодер, необходимо иметь модули, выполняющие следующие операции:
• выравнивание входного потока;
• проведение измерений;
• энтропийное сжатие;
• упаковка данных в контейнер.
Выравнивание входного потока подразумевает первичную подготовку данных для сжатия изображения, т. е. получение изображения с сенсора, размещение его
а
б
Рис. 9. Восстановленное изображение (а) и его гистограмма (б) при 40% измерений и разбиении его на блоки по 64 х 64 пикселя
а б
Рис. 10. Изображение (а) и его гистограмма (б) после ручной установки уровней, полученное из рис. 9, а
в оперативной памяти и поставка упаковщику информации с разбиением его на блоки из диапазона 8 х 8, 16 х 16, 32 х 32 или 64 х 64 пикселей.
После этого проводится прореживание сигнала путем его измерения. Причем для решения этой задачи необходимы только сумматор и некоторое количество операций
сдвига, которое зависит от размера блоков, на которые разбито изображение. Количество тактов измерения также зависит от размера этих блоков. Чем они меньше, тем выше должна быть вероятность Pa, и чем они больше, тем меньше Pa. Так, если размер блока 8 х 8 пикселей, то для успешного восстановления картинки с минимальной погрешностью вероятность Pa необходимо выбирать в районе 50%, а для блока размером 64 х 64 пикселей достаточно провести 3-5% измерений. Несложно подсчитать, что для максимального размера блока одно измерение потребует 122 такта, а для минимального размера блока при таком же объеме информации - уже 2048 тактов. При восстановлении изображения задача может имеет сложность порядка O(K3) [7], поэтому большие блоки будут восстанавливаться значительно дольше, чем малые. Однако, чем больше блок, тем выше качество его восстановления.
Для дополнительного увеличения степени сжатия уже разреженной информации можно применить архивацию без потери информации. Затем обработанный массив необходимо упаковать в контейнер со служебной информацией, которая может включать в себя такие параметры как размер блока, количество измерений, начальные значения для псевдослучайного генератора и т. п. Отметим, что сжатая информация чувствительна к потерям. Повреждение хотя бы одного измерения приведет к невозможности правильного восстановления соответствующего блока информации. Поэтому при передаче изображений необходимы дополнительные меры защиты данных от ошибок.
Для реализации аппаратного кодера использовался язык VHDL и объем занимаемой логики в FPGA для кристалла EP2C5 Cyclon II фирмы ALTERA, при работе с одним блоком размером 64 х 64 пикселя, составил:
• логические элементы, ед. - 165;
• умножитель, ед. - 0;
• регистр, ед. - 95;
• память, кбит - 64.
Если сравнивать с реализацией 2-D-DCT (см. табл. 2), то видно, что здесь количество требуемой логики уменьшается на порядок. Предварительная оценка задержки распространения сигнала внутри кристалла по самому длинному пути, данное синтезатором, прогнозирует максимальную частоту работы ядра порядка 165 МГц.
4. Заключение. Описанная выше однопиксельная камера является по сути аналоговым устройством. Следовательно, для реализации подобных ей устройств следует применять ряд мер, которые должны минимизировать вносимую погрешность измерения и позволить более точно восстановить изображение на стороне приемника. В основном такие меры заключаются в борьбе с наводками шумов по питанию и сигнальным цепям, что достигается введением специальных цепей термокомпенсации и устранением нелинейной характеристики фотодиода. Также необходимо учитывать вносимые абберации в световой поток от DMD и погрешности квантования в процессе аналоговоцифрового преобразования. Если использовать вместо микрозеркал реконфигурируемую логическую матрицу, а вместо одного пикселя CMOS или CCD видеосенсор, то такая система будет лишена многих из этих недостатков. Однако применение видеоматрицы несколько меняет идеологию, используемую в однопиксельной камере. Но к ней можно вернуться и расширить возможности с помощью стандартных аппаратных решений.
В процессе работы, как и ожидалось, выяснилось, что недостатком предлагаемой новой схемы является сложная процедура декодирования, которая занимает существенно большее время для работы алгоритма по сравнению с классическими. При первичном
использовании получалась малая степень сжатия. После округления значений измерений удалось ее повысить, но потеряв в качестве восстановленного изображения, что отразилось на значениях сигнал/шум и погрешности восстановления. В процессе моделирования удалось получить сжатие в пределах 2-2.7 раз. При более сильном прореживании реконструкция изображения дает низкие значения сигнал/шум и субъективной оценки его восприятия. Алгоритмы на базе DCT демонстрируют лучший результат по степени сжатия, но худший по аппаратным затратам.
В дальнейшем планируется провести более глубокий анализ алгоритмов с целью поиска путей увеличения степени сжатия и ускорения восстановления. Также поставлена задача совместного использования трансформирующего кодирования и кодирования на базе CS для кодирования видео. Есть гипотеза, что в такой конфигурации можно получить гораздо большее сжатие, чем дают современные алгоритмы.
Литература
1. Donoho D. Compressed sensing // IEEE Trans. Inform. Theory. 2006. Vol. 52, N 4. P. 1289-1306.
2. Сэломон Д. Сжатие данных, изображений и звука: учеб. пособие для студентов вузов, обучающихся по направлению «Прикладная математика» / пер. с англ. В. В. Чепыжова. М.: Техносфера,
2004. 365 с. (Мир программирования. Цифровая обработка сигналов).
3. Joebert J. Audio Compression Using Modified Discrete Cosine Transform: the mp3 Coding Standard: An undergraduate research paper submitted to the Department of Mathematics College of Science The University of the Philippines Diliman. Quezon City, Oct. 2001. 73 p.
4. Van Dyck W., Smodic R., Hufnagl H., Berndorfer T. High-speed JPEG Coder Implementation for a Smart Camera. Berlin; Heidelberg: Springer, 2006. P. 63-68.
5. Takhar D., Laska N., Michael W. et al. A new compressive imaging camera architectur using optical-domain compression // Proc. of Computational Imaging IV at SPIE Electronic Imaging. San Jose, CA, Jan. 2006. [Online]. Available: http://dsp.rice.edu/files/cs/cscam-SPIEJan06.pdf.
6. Wakin B., Jayson L., Marco D. et al. An architecture for compressive imaging // Proc. Intern. Conference on Image Processing - ICIP, 2006. Atlanta, GA, Oct. 2006. [Online]. Available: http://dsp.rice.edu/sites/dsp.rice.edu/files/cs/CSCam-ICIP06.pdf.
7. Граничин О. Н., Павленко Д. В. Pандомизация данных и -¿^-оптимизация // Компьютерные инструменты в образовании. 2010. № 1. C. 5-13.
8. Граничин О. Н., Павленко Д. В. Рандомизация получения данных и ¿i-оптимизация (опознание со сжатием) (Обзор) // Автоматика и телемеханика. 2010. № 11. C. 3-28.
9. Candes E., Romberg J. ¿i-magic: Recovery of Sparse Signals via Convex Programming. Caltech. Oct.
2005. [Online]. Available: http://www.acm.caltech.edu/l1magic/downloads/l1magic.pdf.
Статья рекомендована к печати проф. А. Н. Тереховым.
Статья принята к печати 10 марта 2011 г.