УДК 681.31
АФФИННЫЕ ПРЕОБРАЗОВАНИЯ НА ОСНОВЕ ФРАГМЕНТНОЙ ВЫБОРКИ ИЗОБРАЖЕНИЯ НА ПЛИС
С.В. Шапка, А.В. Братулин, Д.И. Устюков
Рассмотрена реализация модуля аффинных преобразований для систем обработки видеоизображений высокой четкости в реальном масштабе времени на базе ПЛИС путем выборки фрагментов исходного видеоизображения. В основу реализации положен разработанный авторами алгоритм фрагментирования исходного видеоизображения.
Ключевые слова: аффинные преобразования, видеоизображение, ПЛИС, разработка.
В настоящее время для реализации сложных систем обработки видеоизображений (СОВИ) в реальном времени в качестве элементной базы все чаще используют программируемые логические интегральные схемы (ПЛИС). Это связано с тем, что к современным СОВИ стали предъявляться более жесткие требование:
- большой объем выполняемых функций (улучшение видеоизображения, обнаружение, сопровождение объектов, электронная стабилизация поля видения и т.д.);
- высокое быстродействие (минимально возможная задержка выходного видео);
- надежность;
- возможность интеграции в более сложные системы;
- минимальные масса-габаритные характеристики.
ПЛИС идеально подходит в качестве элементной базы СОВИ, т.к. имеет следующие характеристики:
- параллельная обработка данных, значительный объем логических элементов (микросхемы FPGA фирмы Xilinx семейства Virtex-7 имеют в своем составе до 2 млн. логических ячеек, 65 Мбайт памяти, 4000 DSP модулей), высокая тактовая частота (до 650 MHz);
- высокая надежность;
- количество внешних цифровых выводов до 1500 штук;
- размеры со «спичечный коробок» [1, 5].
Для реализации некоторых функций, таких, как электронная стабилизация, зуммирование, компенсация поворота зеркал оптической системы СОВИ осуществляет аффинные преобразования выходного видеоизображения: сдвиг, масштабирование, поворот [4]. В процессе выполнения аффинных преобразований необходима интерполяция, для которой требуется нерегулярная выборка соседних пикселей входного видеоизображения из памяти. В СОВИ наиболее часто применяют билинейную интерполяцию,
т.к. реализация данного типа интерполяции обладает оптимальным соотношением «качество интерполяции/аппаратные затраты». Для выполнения билинейной интерполяции требуются яркости четырех соседних пикселей. В случае одноканальной системы обработки 8-битных черно-белых видеоизображений повышенной четкости 1080p 30 fps с реализацией билинейной интерполяции необходимая пропускная способность памяти с 8-битной шиной данных будет составлять 1080*1920*30*4 пикс/сек = 62*4 Мпикс/сек = 248 Мпикс/сек или 248 Мпикс/сек*8 бит^2 Гбит/сек при непоследовательной (случайной) выборке.
На настоящий момент все скоростные микросхемы памяти разделяются на два типа: статические и динамические. Первые работают на частотах до 250 Mhz (250 МТ/с), имеют шину данных до 64 бит и обладают возможностью случайной выборки с пропускной способностью до 16Гбит/с, вторые - до 17 Гбит/с при условии страничной (блочной) выборки данных и на первый взгляд удовлетворяют требованию пропускной способности с большим запасом [2, 3]. Однако это не так. В случае применения наиболее распространенных современных микросхем статического ОЗУ (IDT, Cypress, Micron и т.д.) с параметрами 2Mx32 200 Mhz (200МТ/сек) для решения задачи аффинных преобразований 8-битного видеоизображения наиболее оптимальным является хранение по 4 пикселей в одной ячейке. В результате с учетом того, что частота следования пикселей видеоизображения 1080p 30fps составляет 62 Mhz, то необходимое количество транзакций памяти при выполнении операции записи составляет 62/4 МТ/с = 15,5 MT/с, а операции чтения - 62*4 МТ/с = 248 МТ/с т.е. в итоге необходимо 15,5+248 МТ/с = 263,5 МТ/с. Таким образом возникает необходимость параллельной установки нескольких таких микросхем, что в ряде случаев невозможно ввиду нарушения требований к габаритам и энергопотреблению системы в целом. Для динамической памяти пропускная способность обеспечивается только при условии страничной (блочной) выборки, и поэтому она не подходит для реализации данного механизма аффинных преобразований т.к. не обеспечивает возможность нерегулярной выборки с максимальной пропускной способностью.
Решить данную проблему можно путем уменьшения необходимой пропускной способности, т.е. количества транзакций памяти. Можно заметить, что при небольших коэффициентах уменьшения изображения многие пиксели кадра входного видеоизображения выбираются повторно (рис. 1).
Так, согласно рис. 1 при формировании яркостей пикселей кадра выходного видеоизображения с координатам [1,1] и [2,1] для реализации билинейной интерполяции необходимы яркости пикселей кадра входного видеоизображения с координатами [0,1], [1,1], [0,2], [1,2] и [1,1], [1,2], [2,1], [2,2] соответственно. В результате происходит повторная выборка яркостей пикселей с координатами [1,1] и [1,2]. Т.е. можно сделать вывод, что если точки кадра выходного видеоизображения расположены близко
288
друг к другу, то и выбираемые для интерполяции сохраненные в памяти точки кадра входного видеоизображения также находятся рядом друг с другом и в некоторых случаях будут повторяться. Таким образом в общем случае если формировать фрагмент кадра выходного видеоизображение в виде прямоугольника, то для этого потребуется фрагмент кадра входного видеоизображения также ограниченный прямоугольником, но чуть больших размеров из-за выполнения интерполяции (рис. 2). Далее для простоты будем рассматривать вместо прямоугольников квадраты.
Рис. 1. Выборка пикселей кадра исходного видеоизображения при реализации аффинных преобразований
С
Рис. 2. Отображение фрагмента кадра входного видеоизображения на выходном
289
Из рис. 2 видно, что при формировании квадратного фрагмента кадра выходного видеоизображения ЛВСБ потребуются пиксели фрагмента кадра входного видеоизображения, закрашенные серым цветом и ограниченные квадратом Л'В'С'Б'. Т.е. для вычисления пикселей фрагмента ЛВСБ достаточно считать из памяти, в которой сохранен кадр входного видеоизображения, фрагмент ЛВСБ'.
Таким образом, для реализации операции чтения фрагмента памяти ЛВСБ кадра входного видеоизображения необходимо определить координаты этого фрагмента, что осуществляется элементарно. Согласно рис. 2. вершинные пиксели квадратного фрагмента кадра входного видеоизображения Р[0,0], Р[2,0], Р[2,2], Р[0,2] в результате аффинных преобразований с отбрасыванием дробной части вычисленных координат отобразятся соответственно в пиксели Р" [0,1], Р"[2,0], Р"[3,2], Р[1,3] кадра выходного видеоизображения (в квадратных скобках указаны координаты пикселя [Х,У]). Таким образом для того, чтобы определить координаты фрагмента памяти кадра входного видеоизображения, необходимого для интерполяции пикселей квадратного фрагмента кадра выходного видеоизображения достаточно осуществить аффинные преобразования вершин квадратного фрагмента, а затем вычислить минимальные и максимальные значения полученных координат. К получившимся значениям прибавить 1, чтобы охватить зону памяти, содержащую все необходимые пиксели для осуществления интерполяции. Так, согласно рис. 2 необходимый фрагмент входного видеоизображения будет ограничен квадратом со следующими координатами вершин [0,0], [4,0], [4,4], [0,4]. Данный квадратный фрагмент кадра входного видеоизображения можно считать из памяти и сохранить в буфер (например, в блочную память ПЛИС), а затем уже на основе этих данных интерполировать все пиксели квадратного фрагмента выходного видеоизображения.
Теперь нужно только разделить кадр выходного видеоизображения на полосы, а их в свою очередь фрагменты (блоки) последовательно слева-направо сверху-вниз и осуществить интерполяцию каждого из них (рис. 3).
На рис. 3 ВО[Х,У] и В1[Х,У] - это фрагменты кадров выходного и входного видеоизображений с указанными в скобках координатами. Формирование кадра выходного видеоизображения осуществляется полосами сверху вниз. Стрелками показано движения по кадру выходного видео: в пределах каждого фрагмента интерполяция пикселей сверху вниз, слева направо; в пределах кадра формирование блоков слева направо, сверху вниз.
На рис. 4 представлена укрупненная структурная схема блока аффинных преобразований видеоизображения на основе фрагментной выборки изображения.
Рис. 3. Порядок формирования фрагментов кадра выходного видеоизображения
RQ —>
Генератор координат фрагментов
BY
ВХ
Блок аффинных преобразований вершин фрагмента
Формирователь
абсолютных координат точек фрагмента кадра выходного видео
(XA,YA),(XB,YB), г (XC,YC),(XD,YD)
Блок определения координат памяти кадра фрагмента входного видео
X
Y
Интерполятор пикселей
кадра выходного видео
Блок аффинных преобразований
ХЛ
Y"
PacketValid
Формирова тель лок. адресов -locAddrRDOO locAddrRDIO locAddrRDOl locAddrRDl 1
MemACK MemDO
(Xmin,Ymin), I (Xmax,Ymax)
Формирователь сигналов чтения данных из памяти
Пакетный буфер фрагмента кадра входного видео
LocAddrWr ^
Dataln
Пакетный буфер полосы выходного видео
!Full
Empty
RD
Addr
DataOut -►
Next
DataOO " Packet
Data 10 DataOl
Data 11 MemRQ, Mem Addr
Рис. 4. Структурная схема модуля аффинных преобразований видеоизображения на основе фрагментной выборки изображения
Следует учесть, что все блоки, изображенные на рис. 4, содержат выходные FIFO для накопления сформированных данных. Каждый блок начинает работать только тогда, когда есть данные в выходном FIFO блока, соединенного со входом текущего.
Рассмотрим более подробно функционирование модуля аффинных преобразований. Вначале формирования очередного кадра на схему подается сигнал сброса, который приводит ее в начальное состояние. Пакетный буфер полосы выходного видеоизображения не содержит данных, поэтому формируется сигнал !Full (не заполнен) и генератор координат фрагментов начинает формировать координаты фрагментов кадра выходного видеоизображения. Далее блок аффинных преобразований вершин фрагмента выполняет аффинные преобразования вершин текущего прямоугольного фрагмента. После этого блок определения координат памяти фрагмента входного видео определяет среди координат вершин минимальные и максимальные значения по каждой координате. Формирователь сигналов чтения данных из памяти формирует адреса пикселей текущего фрагмента кадра входного видеоизображения и запрос на чтение данных из памяти. Считанные из памяти данные MemDO, сопровождаемые стробом MemACK поступают в пакетный буфер фрагмента кадра входного видеоизображения и записываются по адресу LocAddrWr. После того как весь фрагмент будет считан, формируются абсолютные координаты точек фрагмента кадра выходного видеоизображения (X,Y). Далее осуществляются аффинные преобразования этих точек и на основании аффинно-преобразованных координат (X\Y') формируются локальные адреса пикселей интерполяции LocAddrRdOO, LocAddrRdlO, LocAddrRdOl, LocAdrRdll, по которым считываются соответствующие яркости пикселей DataOO, DatalO, DataOl, Datall из пакетного буфера фрагмента кадра входного видеоизображения. После этого считанные яркости пикселей поступают на интерполятор пикселей кадра выходного видеоизображения, который вычисляет яркость пикселя текущего фрагмента кадра выходного видеоизображения Dataln. Далее DataIn сохраняется в пакетный буфер выходного видеоизображения. Фрагменты кадра выходного видеоизображения формируются до тех пор, пока есть место в пакетном буфере полосы выходного видеоизображения. Как только будут вычислены все пиксели полосы кадра выходного видеоизображения, сгенерируется сигнал окончания записи полосы и она станет доступна для чтения, при этом сигнал Empty станет равным нулю. Чтение полосы осуществляется в темпе формирования кадра выходного видеоизображения путем задания адреса Addr. После окончания чтения последнего пикселя полосы необходимо сформировать запрос на чтение новой полосы NextPacket.
Проведено моделирование модуля аффинных преобразований, работающего на системной частоте lOO Mhz, хранящего в l ячейке памяти 4 пикселя и формирующего кадры выходного видеоизображения высокой
четкости 1080р 30 fps. Далее будем оценивать влияние параметров аффинных преобразований: угла поворота а, коэффициента масштабирования к, величин сдвига по координатам X и Y (ДХ, AY), высоты полосы формируемого кадра выходного видеоизображения ВН на минимальную необходимую пропускную способность памяти F.
Зависимость количества запрашиваемых пикселей из памяти N, количества выборок данных из памяти М, эффективности выборок Е, минимальной необходимой пропускной способности памяти F от параметров аффинных преобразований: угла поворота а, коэффициента масштабирования к, сдвига ДХ, AY для формирования 1 кадра полосами высотой 8 строк и фрагментами 8x8=64 пикселей приведена в табл. 1.
Таблица 1
Зависимость минимальной необходимой пропускной способности памяти от параметров аффинных преобразований
АХ дк к А N М Е F (МТ/сек)
0 0 1 0 8288401 1292732 6,411 54
0 0 1 10 7565632 1139917 6,637 56
0 0 1 20 7010742 1096462 6,393 58
0 0 1 30 6579642 1107760 5,939 64
0 0 1 40 6221078 1036251 6,003 60
0 0 1 50 5867812 977489 6,002 54
0 0 1 60 5392254 880558 6,124 57
0 0 1 70 4969554 710802 6,991 44
0 0 1 80 4741924 619791 7,650 42
0 0 1 90 4669924 466247 10,015 38
0 0 1 100 4742008 581769 8,151 42
0 0 1 110 4969734 636643 7,806 44
0 0 1 120 5392568 773208 6,974 57
0 0 1 130 5868006 886244 6,621 52
0 0 1 140 6221240 958749 6,488 51
0 0 1 150 6579840 1054701 6,239 55
0 0 1 160 7010966 1071905 6,541 54
0 0 1 170 7565906 1128641 6,703 54
0 0 1 180 8288401 1292732 6,411 54
0 0 2 0 2073600 825412 2,512 77
0 0 2 30 2076606 959821 2,163 95
0 0 4 0 518400 563794 0,919 117
0 0 4 30 519150 764515 0,679 144
0 100 0 0 7860919 1226680 6,408 53
0 200 0 0 7429119 1157932 6,415 51
100 0 0 0 7528279 1174775 6,408 54
200 0 0 0 6760479 1053941 6,414 54
0 0 0,5 0 8294400 583200 14,222 33
0 0 0,5 30 8294400 660156 12,564 36
0 0 0,25 0 8294400 259200 32,000 23
0 0 0,25 30 8294400 380525 21,797 27
Значения минимальной необходимой пропускной способности памяти, приведенные в табл. 1 рассчитываются по формуле (1), исходя из того, что кадр выходного видеоизображения должен быть сформирован за время, равное 1//, и с учетом времени, необходимого для записи кадра исходного видеоизображения в память
тот /
где - количество транзакций памяти, транзакций/с; Ж - ширина
кадра выходного видеоизображения, пике; Н - высота кадра выходного видеоизображения, пике; / - частота кадров выходного видеоизображения, кадр/сек; / - количество пикселей, хранящихся в одной ячейке памяти; М - высота полосы формируемого кадра выходного видеоизображения; К - максимальное количество выборок из памяти, необходимых для формирования полосы кадра выходного видеоизображения, транзакции.
Из анализа табл.1 следует, что снижение эффективности выборок происходит лишь при повороте и сжатии кадра выходного видеоизображения, и достигает максимального значения при повороте на 30 градусов и уменьшении в 4 раза, при этом сдвиг никакого влияния не оказывает.
Зависимость количества выборок данных из памяти М, эффективности выборок Е, минимальной необходимой пропускной способности памяти Б от высоты полосы ВН и ширины формируемого фрагмента В\¥ при угле поворота 30 градусов, нулевых значениях сдвига и при отсутствии масштабирования приведена в табл. 2.
Таблица 2
Зависимость минимальной необходимой пропускной способности памяти от параметров модуля аффинных
преобразований
ВН В\\ М Е Е (МТ/с)
4 4 1799531 3,656 91
8 6 1253255 5,250 68
8 7 1225430 5,369 68
8 8 1107760 5,940 59
8 9 1112886 5,912 64
8 10 1033087 6,369 62
8 11 1052572 6,251 63
8 12 988129 6,658 61
8 13 1016316 6,474 62
8 14 964598 6,821 61
8 15 997063 6,599 62
8 16 954797 6,891 61
16 16 868536 7,575 54
32 32 757529 8,686 49
Из анализа табл. 2 видно, что эффективность выборок и минимальная необходимая пропускная способность памяти в первую очередь зависят от высоты полос формируемого кадра выходного видеоизображения и незначительно от их ширины. Наиболее оптимально, когда BW=BH. При увеличении высоты полос кадра формируемого выходного видеоизображения происходит снижение минимальной необходимой пропускной способности памяти, при этом происходит увеличение размера пакетного буфера полосы выходного видео, а, следовательно, и количества используемых модулем блоков памяти ПЛИС.
Таким образом, описанный выше метод реализации аффинных преобразований на основе фрагментной выборки изображения позволяет сократить минимально необходимую пропускную способность памяти приблизительно в 2.5 раза до 100 МТ/с, если используются незначительные коэффициенты масштабирования. Параметры модуля необходимо выбирать, исходя из возможностей микросхем используемых ПЛИС и памяти, а также требований максимального тепловыделения (с их учетом выбирается системная частота работы ПЛИС и памяти).
Данный способ обладает хорошей реализуемостью на современных ПЛИС и имеет высокие показатели эффективности с точки зрения занимаемых ресурсов и быстродействия.
К недостаткам данного способа следует отнести необходимость перевыборки пикселей из памяти, т.к. чтение данных осуществляется фрагментами прямоугольной формы. Устранение данного недостатка возможно только путем реализации схемы предсказания выборки и соответственно значительным увеличением используемых ресурсов ПЛИС.
Список литературы
1. Стешенко В.Б. Современные алгоритмы ЦОС: пути реализации и перспективы применения // Сайт НУК "Специальное машиностроение" МГТУ имени Н.Э..Баумана, 2015. [Электронный ресурс] URL: http://www. sm.bmstu.ru/sm5/n4/oba/zan 1 .html (дата обращения: 10.09.2015).
2. Беседин Д.В. Современная оперативная память (RAM FAQ 1.01). // Специализированный российский информационно-аналитический сайт с самыми актуальными новостями из сферы IT, детальными обзорами смартфонов, планшетов, персональных компьютеров, компьютерных комплектующих, программного обеспечения и периферийных устройств, 2006. [Электронный ресурс] URL: http: //www.ixbt .com/mainboard/ram-faq-2006.shtml (дата обращения: 11.09.2015).
3. Николайчук О.Н. Современные микросхемы памяти. Часть 2. // Сайт журнала «Компоненты и технологии», 2012. [Электронный ресурс] URL: http://www.kit-e.ru/articles/memory/2012 06 74.php (дата обращения: 11.09.2015).
4. Ларкин Е.В., Котов В.В., Котова Н.А. Система технического зрения робота с панорамным обзором. Известия Тульского государственного университета, Технические науки. 2009. Вып. 2. Ч. 1. 286 с.
5. Совмещение изображений в корреляционно-экстремальных навигационных системах: монография / С.И. Елесина, М.Б. Никифоров, А.А. Логинов, Л.Н. Костяшкин; под ред. Л.Н. Костяшкина, М.Б. Никифорова. М.: Радиотехника, 2015. 208 с.
Шапка Сергей Владимирович, асп., pshapkaayandex.ru, Россия, Рязань, Рязанский государственный радиотехнический университет,
Братулин Александр Вадимович, асп., bratulina mail.ru, Россия, Рязань, Рязанский государственный радиотехнический университет,
Устюков Дмитрий Игоревич, инженер, ustukov. mailayandex. ru, Россия, Рязань, Рязанский государственный радиотехнический университет
AFFINE TRANSFORMA TIONS OF IMAGES BASED ON A FRAGMENTARY SAMPLING ON FPGA
S. V. Shapka, A. V. Bratulin, D.I. Ustukov
Realization of the module affine transformations for systems processing highdefinition video in real time on the FPGA by sampling fragments of the original video is considered. The basis of the implementation of an algorithm developed by the authors put to the fragmentation of the original video.
Key words: affine transformations, video, FPGA development.
Shapka Sergey Vladimirovich, postgraduate, pshapkaayandex. ru, Russia, Ryazan, Ryazan State Radioengineering University,
Bratulin Alexandr Vadimovich, postgraduate, hratulin amail.ru, Russia, Ryazan, Ryazan State Radioengineering University,
Ustyukov Dmitriy Igorevich, engineer, ustukov. mailayandex. ru, Russia, Ryazan, Ryazan State Radioengineering University