сложности его реализации, а также решения вопросов совместного функционирования с программно реализованной системой. По мнению авторов работа является перспективной.
Литература
1. Гэри М., Джонсон Д. Вычислительные машины и труднорешаемые задачи. -М.: Мир, 1982. - 584
с.
2. http://ru.wikipedia.org/wiki/RSX
3. Л. Р. Форд, Д. Р. Фалкерсон. Потоки в сетях / Перевод с англ.И.А. Вайнштейна. -М.: Мир, 1966.
4. Артамонов Е. И., Сизова Л. Н. Автоматическая трассировка соединений (АТС). Свидетельство о государственной регистрации N2008613903 от 15 августа 2008г.
ПРИМЕНЕНИЕ ПРОЦЕССОРОВ СЕМЕЙСТВА NEUROMATRIX® ДЛЯ МАСШТАБИРОВАНИЯ ИЗОБРАЖЕНИЙ
С. В. Мушкаев, вед. инженер-программист Тел. (499) 1529802, e-mail: [email protected] ЗАО НТЦ «Модуль» http://www.module.ru
A common problem in digital signal and image processing is a video resampling process. Actual applications dealing with High Definition (HD) resolution in real time have a quite high computational complexity. This paper analyses the applicability of DSP NeuroMatrix® architecture for video resampling. The example of implementation of SD to HD video format conversion on NM6405[1] processor is considered.
В современных приложениях при работе с SD/HD видео задачи масштабирования изображений в режиме реального времени имеют достаточно высокую вычислительную сложность. В данном докладе рассматривается применимость DSP архитектуры NeuroMatrix® для решения этих задач на примере программной реализации полифазного алгоритма масштабирования на процессоре 1879ВМ4(NMб405)[1].
Ключевые слова: передискретизация, масштабирование, интерполяция, полифазный фильтр, К1789ХБ1Я, векторный процессор, параллельные вычисления, Lanzos, NeuroMatrix, NM6405.
Keywords: resampling, image resizing, scaler, scaling, interpolation, polyphase filtering, vector processor, parallel processing, Lanzos, NeuroMatrix, NM6405.
Введение
В телевизионных системах существует масса задач постобработки видео после его декодирования. В связи с распространением телевидения высокой четкости, появлением HD дисплеев и в то же время наличия большого SD видео контента естественно вытекающей задачей является быстрое и качественное масштабирование изображений до размера экрана. В 2010 компания ЗАО НТЦ «Модуль» выпустила систему на кристалле для декодирования цифрового телевизионного сигнала СБИС К1789ХБ1Я [2], способную декодировать видеопотоки MPEG-2, VC-1 и
H.264 как в SD, так и HD формате. В микросхеме имеется уже аппаратный блок масштабирования (скейлер), однако, дополнительно в нее также интегрирован DSP сопроцессор NeuroMatrix® NMC3 [1], с помощью которого предполагается производить постобработку видео и декодирование аудио. Так как программное решение само по себе более гибко и функционально чем аппаратное, возник вопрос об использовании ядра NeuroMatrix Core(NMC) в качестве видео скей-лера с произвольным коэффициентом масштабирования и в частности из SD в HD.
Существуeт множество методов масштабирования изображений. Основными из них являют-
ся: интерполяция по ближайшему соседу, билинейная, бикубическая, фильтром Ьапс208. Все они обладают разным качеством и имеют соответственно разную вычислительную сложность. Довольно популярным на практике является фильтр Ьапс208. В виду достаточно высокого качества алгоритма Ьапс208 и в тоже время выгодного для архитектуры №игоМа1пх характера его вычислений было предложено реализовывать этот алгоритм с помощью системы полифазных фильтров.
Полифазная фильтрация
Полифазный метод [3] позволяет производить передискретизацию сигнала в рациональное число раз. Это означает, что если исходную частоту дискретизации необходимо изменить в р/д раз, то сначала выполняется интерполяция с коэффициентом р , а затем прореживание с коэффициентом д.
Отсчеты входного сигнала
«и- I I
Коэффициенты фильтра ТекущнП Импульсно-переходная
выходной отсчет функция ФНЧ
Рис. 1. Интерполирующая функция
Рис.2. Пример работы полифазного алгоритма
Интерполяция осуществляется путем вставки между отсчетами входного сигнала по (р-1) нулей. Полученный сигнал пропускается через ФНЧ с частотой среза/^/2 , где/д- частота дискретизации. Полученный сигнал пропускается через ФНЧ с частотой среза (^д р/д)/2. И далее из полученного сигнала выбирается каждый д-й отсчет. Первые два шага относятся к процессу интерполяции, последние два - к прореживанию. Очевидно, что в этом случае будет выполняться много избыточных операций. Алгоритм, который минимизирует число вычислительных операций называется полифазным и широко используется на практике [2]. В полифазном методе, для приближенного восстановления сигнала в качестве интерполирующей функции, используется функция, полученная из sync-функции и окна Хэмминга, вид которой показан на рис. 1. Поскольку для фильтрации необходимо только отличные от нуля отсчеты входного сигнала, то из фильтрующей функции, как показано на рис.1 выбираются не все, а только соответствующие им значения. Так как прореживаемые выходные отсчеты имеют различное смещение относительно исходных опорных ненулевых значений, то составляется набор из нескольких фильтров. И далее при интерполяции конкретного отсчета выбирается соответствующий из набора фильтров. Длина фильтров в конкретной реализации определяется на основе компромисса между качеством интерполяции и вычислительными затратами. При этом если длина фильтра составляет 1 коэффициент, то алгоритм сводится к методу интерполирования по ближайшему соседу, если 2 - к билинейной интерполяции.
Таким образом, задача масштабирования сводится к фильтрации исходного изображения в горизонтальном и вертикальном направлении циклически чередующимися фильтрами. На рис. 2 они отображены в виде сдвинутой лестничной структуры К0,К1,К2,К3,К4,К5,К0,К1... При этом ширина шага фильтрации непостоянна, но также подчиняется циклическому закону в зависимости от коэффициентов р и д. Как показано на рис. 2 коэффициенты входного массива XI, лежащие под окном фильтра К), суммируются взвешенным умножением с коэффициентами фильтра К) и сохраняются в соответствующем поле У] : у0=х0*к00+ х1*к01 + х2*к02+ х3*к03; ... у3=х2*к30+ х3*к31 + х4*к32+ х5*к33 . Суть этого умножения и заложена аппаратно в векторном умножителе [4], который в данной настраиваемой конфигурации производит по 32 умножения с накоплением за такт, что позволяет существенно ускорить вычисления.
Программная реализация алгоритма.
На рис. 3 показано как схема фильтрации с лестничной структурой фильтров рис. 2 трансформируется в контекст векторно-матричных вычислений векторного узла процессора №игоМа-1гіх. Векторный умножитель имеет матричную структуру с программно настраиваемым разбиением^], которая в данной задаче представляет собой матрицу из 8х4 16-разрядных весов для загрузки коэффициентов Щ. Для этого банки фильтров дополняются нулями и загружаются в 4 колонки как показано на рис.3 . Далее на вход умножителя подаются пиксели исходного изображения X блоками по 8 байт. В каждой ячейке матрицы производится умножение веса Щ на соответствующий байт Xi в этой строке. Результаты произведений суммируются внутри колонок и сохраняются в соответствующих 16р. ячейках Yj. Следует заметить, что полная данная операция производится за один процессорный такт, что главным образом и обуславливает ускорение алгоритма. Так как векторный умножитель оперирует только целочисленными данными, то коэффициенты Щ представляются в формате чисел с фиксированной точкой. После такого умножения необходимо округление и нормализующий сдвиг вправо, который выполняется также на векторном узле. Аналогичным образом умножаются и другие 64-разрядные блоки пикселей на соответствующие весовые матрицы К4-К1, К2-К0 и т.д., в результате чего на выходе получается горизонтально интерполированное изображение У.
Весовая матрица Умножителя КО-КЗ
Изображение растянутое
по горизонтали | —--- 54 0ита
Рис.3. Схема работы векторного множителя при горизонтальном масштабировании
Изображение растянутое по вертикали
Рис.4. Схема работы векторного умножителя при вертикальном масштабировании
Следующим шагом является масштабирование по вертикали. Здесь разбиение матрицы и процесс умножения остается прежним, однако на этот раз наоборот - в весовую матрицу умножителя загружаются 16-разрядные пиксели изображения У блоками размером 8х4, а на вход умножителя подаются уже заранее сформированные 64р. блоки с упакованными в них коэффициентами фильтров К. В результате на выходе формируется полностью масштабированное 16разрядное изображение Z.
Для окончательного результата над изображением Z необходимо снова произвести округление, нормализующий сдвиг вправо, пропустить данные через пороговую функцию в пределах [0...255] и переупаковать в 8-разрядный формат данных. Отличительной особенностью процессора №игоМа1хіх является то, что перечисленный набор действий можно выполнить одновременно за один проход, интегрировав все эти операции в одну комплексную векторную команду.
Полный процесс масштабирования состоит из 5 процедур, порядок и перечень которых приведен в таблице 1 с указанием средней производительности на монохромный пиксель, а также отношением времени работы функции к общему времени.
Таблица 1
Производительность функций в алгоритме масштабирования
Операция Число тактов на входной пиксель Число тактов на выходной пиксель % от общего времени
1. Смещение диапазона яркостей входного изображения [0..255]—^[-128..+127] 0.16 2.7
2. Горизонтальное масштабирование (р^=8/3) 1.4 0.53 26.3
3. Округление / нормализующий сдвиг вправо 0.29 13.6
4. Вертикальное масштабирование (р^=15/8) 0.7 0.37 32.18
5. Округление / нормализующий сдвиг вправо / пороговая обработка [-128.. .+127] / восстановление диапазона яркостей [-128..127]—[0..255]/ переупаковка 16 бит—8 бит 0.29 25.33
Всего (полное масштабирование монохромного изображения SD->HD) 5.75 1.15 100
Выводы
Автор считает, что в данной работе новыми являются следующие положения и результаты:
1. В работе был проведен анализ существующих методов масштабирования и выбран наиболее подходящий для программной реализации на архитектуре №игоМаШх. Выбранный поли-фазный алгоритм был адаптирован и оптимизирован под архитектуру Б8Р процессора МК6405. Полученная программная реализация была опробована на отладочной плате МЦ5101. Полученные замеры производительности масштабирования составляют 1.2 такта на выходной монохромный пиксель, что для масштабирования цветного видео 4:2:2 из 8Б в ИБ в режиме реального времени требует тактовой частоты в 150МГц (без учета дополнительных затрат на обмен с внешней памятью). Имеющееся же частота 324МГц в СБИС К17891Я обеспечивает достаточную производительность не только для масштабирования 8Б и НБ видеопотоков в темпе их поступления, но также оставляет запас вычислительных ресурсов для дополнительной обработки или необходимого переформатирования данных.
2. Возможность программной реализации данного алгоритма позволяет разрабатывать видео скейлеры с практическими любыми коэффициентами масштабирования как вверх, так и вниз. Это, в свою очередь, позволяет конструировать более сложные и гибкие скейлеры, например, с возрастающим коэффициентом растяжения на краях изображения делая пропорции объектов в центре более реалистичными.
3. Конечный программный код для №игоМаШх оказывается привязанным к фиксированным коэффициентам растяжения и не является параметризуемым. Однако, программный комплекс разработан так, что модификации самого исполняемого когда практически не требуется для разных коэффициентов масштабирования. Для этого достаточно сгенерировать новые таблицы весовых коэффициентов с помощью соответствующей программы. Такой подход позволяет относительно быстро разрабатывать скейлеры под любые коэффициенты масштабирования, а также легко варьировать длину и веса самих фильтров. Следует заметить, что при длинах фильтров 1 и 2 алгоритм автоматически сводится к интерполяции по ближайшему соседу или билинейной интерполяции, что дает дополнительный выигрыш производительности.
4. В целом, анализ полученных результатов показал высокую эффективность архитектуры №игоМаШх в задачах фильтрации, интерполяции и масштабирования сигналов и изображений. В частности, ядро КМС3 может успешно применяться для постобработки видео в цифровом декодере цифрового телевизионного сигнала стандартной и высокой четкости К1789ХБ1Я.
Литература
1.В. М. Черников, П. Е. Виксне, А. М. Шелухин, А. В. Черников, Д. Е. Косоруков Новый отечественный процессор обработки сигналов 1879ВМ4 семейства №игоМайх // IV Всероссийская научно-техническая конференция «Проблемы разработки перспективных микро- и наноэлектронных систем - 2010» : Сборник трудов. 2010.
2.Шевченко П. А., Презентация доклада «Отечественная СБИС декодера цифрового телевизионного сигнала уже существует» // Тринадцатая международная конференция С8ТБ'2011: Секция бизнес-семинаров, -Москва. 2011, (рус). http://www.module.ru/
3.Сергиенко А. Б. Цифровая обработка сигналов - СПб.; Питер, 2002. -237 с.
4. «Нейропроцессор КМ6403. Введение в архитектуру» -М.: НТЦ «Модуль», 1998. http://www.module .ги/