Фундаментальные основы обработки видеоизображений. Часть 2


PDF версия

В этой части статьи рассматриваются составные компоненты видеосистем и вопросы эффективного перемещения видеоданных между ними.

На рисунке 1 показана типичная цифровая видеосистема.

 

Рис. 1. Процесс прохождения сигнала в видеосистеме

 

Внешний источник видеоизображения в верхней части рисунка передает сигнал (который при необходимости оцифровывается в видеодекодере) в мультимедийный процессор. В процессоре этот сигнал, прежде чем он будет сохранен в памяти или передан по сети, может быть подвергнут программному сжатию. В обратном направлении из сетевого узла или устройства памяти в процессор поступает сжатый видеопоток, который подвергается декомпрессии в программном декодере и подается на цифровое устройство отображения (например, TFT ЖК-панель) или преобразовывается видеокодером в аналоговую форму для вывода на стандартный электронно-лучевой монитор.
Сжатие и декомпрессия — это лишь одни из многих алгоритмов, которые могут исполняться на мультимедийном процессоре. Однако эти две операции служат хорошим примером для обсуждения различных вопросов обработки видеоизображений.

Источники изображения
Источники аналогового видеосигнала

Ядра процессоров для встраиваемых приложений не могут работать с аналоговыми видеосигналами напрямую. Поэтому видеосигнал должен быть предварительно оцифрован при помощи видеодекодера. Это устройство преобразовывает аналоговый видеосигнал (например, NTSC, PAL, CVBS, S-Video) в цифровой вид (обычно в формате ITU-R BT.601/656 YCbCr или RGB). Процесс преобразования — это сложный, много­уровневый процесс, который включает извлечение из сигнала информации о синхронизации, разделение на составляющие яркости и цветности, разделение сигнала цветности на составляющие Cr и Cb, дискретизацию выходных данных и их упорядочивание в соответствии с требуемым форматом. Для конфигурирования рабочих параметров декодера используется последовательный интерфейс типа SPI или I2C. На рисунке 2 показана блок-схема типичного видеодекодера.

 

Рис. 2. Блок-схема видеодекодера ADV7183B

Источники цифрового видеосигнала

В большинстве современных камер применяются технологии приборов с зарядовой связью (CCD, Charge-Coupled Device) или КМОП, благодаря которым осуществляется преобразование света в электрические сигналы, однако достигается это разными способами. КМОП-сенсоры обычно выдают параллельный цифровой поток пикселов в формате YCbCr или RGB, сигналы кадровой и строчной синхронизации, а также сигнал тактовой синхронизации пикселов. В некоторых сенсорах есть режим передачи кадров под управлением внешних сигналов синхронизации. В свою очередь CCD-сенсоры обычно используются вместе с микросхемой аналогового входного интерфейса (AFE, Analog Front End) типа AD9948, которая обрабатывает выходной аналоговый сигнал массива CCD, оцифровывает его и формирует необходимые временные циклы для сканирования массива CCD. Процессор выдает на микросхему AFE сигналы синхронизации, которые необходимы ей для управления массивом CCD. Оцифрованный параллельный поток на выходе AFE может быть 10- или даже 12-разрядным. Более подробная информация о достоинствах и недостатках КМОП- и CCD-сенсоров, а также обзор типичной конвейерной схемы обработки изображений содержится в статье CCD- and CMOS- image sensor processing pipeline (www.dspdesignline.com/showArticle.jhtml?articleID=189600793).

 

Устройства отображения
Видеокодер

Видеокодер преобразовывает цифровой видеопоток в аналоговый видеосигнал. Как правило, он принимает на вход цифровой видеопоток в формате ITU R BT.656 или BT.601 и преобразовывает его в сигнал, совместимый с одним из нескольких аналоговых стандартов (например, NTSC, PAL, SECAM). Хост-процессор управляет кодером при помощи двух- или трехпроводного интерфейса, программируя такие настройки, как интервал следования пикселов, входной/выходной форматы и фильтрация сигнала яркости/цветности. На рисунке 3 приведена блок-схема типичного видеокодера.

 

Рис. 3. Блок-схема видеокодера ADV7179

 

Видеокодеры обычно выдают сигнал в одном или нескольких из следующих форматов:
CVBS — композитный видеосигнал (Composite Video Baseband Signal/Composite Video Blanking and Syncs). Композитный видеосигнал содержит информацию о яркости, цветности, синхронизации и цветовой синхронизации, которая передается по одному проводу.
S-Video. В формате S-Video сигналы яркости и цветности передаются отдельно. Такое разделение значительно улучшает качество изображения, что обуславливает популярность формата S-Video в современном оборудовании для домашних кинотеатров.
Составной видеосигнал (YPbPr) — это аналоговая версия цифрового формата видеоизображений YCbCr. В этом формате сигналы яркости и два сигнала цветности выдаются раздельно, причем каждый со своей частотой. За счет этого достигается максимальное качество аналогового изображения. Составной сигнал очень часто используется в DVD-плеерах и A/V-ресиверах домашних кинотеатров класса high-end.
Аналоговый RGB-сигнал. В этом формате используются раздельные каналы для сигналов красного, зеленого и синего цветов. Качество изображения аналогового RGB-cигнала близко к качеству составного видеосигнала. Этот формат применяется, как правило, для вывода компьютерной графики.

 

Электронно-лучевые мониторы

Особой популярностью в компьютерных мониторах и ЖК-панелях пользуется формат RGB. Большинство старых компьютерных мониторов принимают от графического адаптера аналоговые RGB-сигналы по трем раздельным линиям и формируют изображение, модулируя три раздельные электронные пушки. В зависимости от того, какая из пушек возбуждает люминофорную точку на экране, эта точка принимает красный, зеленый, синий цвет или комбинацию из этих цветов. Этот способ отличается от применяемого в аналоговом телевидении, где одна электронная пушка модулируется композитным сигналом, в котором по одной линии передается вся информация цветности. В более современных компьютерных мониторах для приема RGB-информации (как в цифровом, так и в аналоговом форматах) применяется интерфейс DVI (Digital Visual Interface).
Главное преимущество электронно-лучевых мониторов — в их низкой стоимости и возможности воспроизведения большего количества цветов по сравнению с ЖК-панелью сопоставимого размера. Кроме того, в отличие от ЖК-дисплеев, их изображение можно просматривать под любым углом. К недостаткам электронно-лучевых мониторов относятся крупные габариты и значительное электромагнитное излучение, а также мерцание экрана, которое может вызывать усталость глаз.

 

Жидкокристаллические (ЖК) дисплеи

По технологии производства ЖК-дис­плеи можно разделить на две основные группы: пассивные и активные матрицы. В первой технологии (к которой относятся матрицы STN, Super Twisted Nematic) две стеклянные подложки, на одну из которых нанесены строки, а на другую — столбцы, образуют «жидкокристаллический сэндвич». Пикселы формируются в пересечениях столбцов и строк. Для активации отдельного пиксела схема синхронизации возбуждает столбец, в котором расположен пиксел, заземляя при этом соответствующую строку. Разность напряжений вызывает «распрямление» жидкого кристалла в точке этого пиксела, в результате чего он становится непрозрачным и препятствует прохождению света.
Пассивные матрицы имеют некоторые недостатки. К ним относятся низкая скорость обновления экрана, что может привести к появлению «ореола» при выводе быстро движущихся изображений, и сравнительно малый угол обзора. Кроме того, напряжение в точке пересечения строки и столбца может распространяться и на соседние пикселы, частично блокируя прохождение света, что приводит к расплывчатости изображения и снижению контрастности.
Технология активных матриц значительно превосходит технологию пассивных матриц по уже названным позициям. В активных матрицах каждый пиксел состоит из конденсатора и транзисторного ключа, поэтому появилось другое, более популярное название таких матриц — TFT (Thin-Film Transistor) ЖК-дисплеи. Для выбора отдельного пиксела в активных матрицах активируется строка, в которой он находится, после чего к его столбцу прикладывается напряжение. В результате изолируется только один необходимый пиксел, а остальные пикселы не затрагиваются. Снижение тока, необходимого для управления пикселом, позволяет увеличить скорость переключения пикселов и, следовательно, частоту обновления TFT-дисплеев по сравнению с пассивными матрицами. Более того, за счет модуляции уровня напряжения, прикладываемого к пикселу, можно обеспечить большое количество дискретных уровней яркости. Сегодня используется, как правило, 256 уровней.
Задача подключения TFT ЖК-дисплея может оказаться непростой из-за большого числа необходимых компонентов. Во-первых, это сама панель, которая состоит из массива пикселов, упорядоченных по строкам и столбцам. Во-вторых, дисплей требует подсветки. Для этой цели чаще всего применяются флуоресцентные лампы с холодным катодом (CCFL, Cold Cathode Fluorescent Lamp), которые возбуждают молекулы газа, излучающие яркий свет. Они очень мало нагреваются и отличаются длительным сроком эксплуатации. Другим распространенным источником подсветки являются светодиоды, которые применяются в основном в панелях малых и средних размеров. Их отличают низкая стоимость, низкое рабочее напряжение и длительный срок эксплуатации, однако они могут потреблять значительно больше мощности, чем CCFL. В-третьих, чтобы преобразовать входной видеосигнал в формат, требуемый для отображения картинки на ЖК-панели, необходим контроллер ЖК-дисплея. Как правило, он содержит времязадающий генератор, который формирует сигналы синхронизации для тактирования отдельных пикселов панели, а также выбора строк и столбцов. В числе дополнительных функций контроллеров ЖК-дисплеев могут быть поддержка отображения дополнительной графической и текстовой информации, таблицы поиска цветов, функции сглаживания цветовых переходов и вращения изображения. И наконец, для формирования необходимых уровней напряжения ЖК-панели необходима микросхема драйвера ЖК-дисплея, которая играет роль транслятора между выходом контроллера ЖК-дисплея и ЖК-панелью.
Тенденция уменьшения и удешевления мультимедийных устройств приводит к необходимости интеграции этих компонентов в единую систему. Сегодня существуют модули TFT ЖК-дисплеев с интегрированными схемами времязадающего генератора и драйвера, которые требуют лишь подключения шины данных, сигналов синхронизации тактовой частоты и напряжения питания. Некоторые панели вместо параллельных цифровых входов имеют вход композитного аналогового видеосигнала.

 

Дисплеи на органических светодиодах (OLED-дисплеи)

Термин «органический» в аббревиатуре OLED (Organic Light-Emitting Diode) имеет отношение к материалу между двумя электродами. При протекании тока через эту органическую субстанцию она излучает свет. Эта технология изготовления дисплеев появилась сравнительно недавно и имеет хорошие перспективы, поскольку у нее нет некоторых недостатков ЖК-дисплеев. OLED-дисплеи не требуют подсветки, что позволяет уменьшить потребляемую мощность, стоимость и вес. Кроме того, по сравнению с сопоставимыми ЖК-панелями, OLED-панели могут поддерживать гораздо больший диапазон цветов и лучше отображают движущиеся изображения. Еще у них больший угол обзора и более высокая контрастность. Интерфейс данных и управления OLED-панелей похож на интерфейс TFT ЖК-панелей.
Широкое применение OLED-панелей сдерживается ограниченным сроком их эксплуатации. Органический материал разрушается после нескольких тысяч часов работы. Однако в некоторых современных дисплеях это значение уже превышает 10 тыс. часов, что является достаточным для многих портативных мультимедийных устройств.

 

Мультимедийный процессор

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

Видеопорт

Для работы с видеопотоками процессоры должны иметь подходящий интерфейс, способный поддерживать высокие скорости ввода и вывода данных. Такой интерфейс в некоторых процессорах можно организовать, подключив FPGA и/или FIFO к порту внешней памяти. Обычно это устройство выполняет функцию сопряжения постоянного, сравнительно медленного потока видеоданных (~27 МБ/с для видеосигнала формата NTSC) c контроллером внешней памяти, который имеет недетерминированную загрузку, но обладает высокой скоростью и поддержкой пакетных передач (~133 Мслов/с или 266 МБ/с). Такое построение интерфейса имеет ряд недостатков. FIFO и FPGA — это дорогие устройства, зачастую соизмеримые по стоимости с видеопроцессором. Кроме того, использование интерфейса внешней памяти для передачи видеоданных снижает пропускную способность при перемещении буферов видеоданных между ядром процессора и внешней памятью.
Поэтому в системах обработки мультимедийных данных желательно иметь выделенный видеоинтерфейс. В процессорах Blackfin такую роль играет порт PPI (Parallel Peripheral Interface). Это многофункциональный параллельный интерфейс с разрядностью от 8 до 16 бит. Он поддерживает двунаправленную передачу данных, имеет три линии синхронизации и один вывод для подключения внешнего источника тактового сигнала. Порт PPI способен выполнять аппаратное декодирование данных в формате ITU R BT.656. Кроме того, его можно использовать для интерфейса с источниками сигнала в формате ITU R BT.601, дисплеями и TFT ЖК-панелями. PPI позволяет также подключать к процессору высокоскоростные АЦП и ЦАП, а также эмулировать хост-интерфейс при управлении внешним процессором.
Порт PPI имеет ряд специальных возможностей, полезных для уменьшения стоимости системы и упрощения процесса передачи данных. Так, при работе в режиме BT.656 PPI может декодировать входной видеопоток и автоматически игнорировать любые данные, кроме активного видеоизображения. За счет этого скорость входного видеопотока NTSC сокращается с 27 до 20 МБ/с, что заметно уменьшает объем необходимой внешней памяти. И наоборот, порт может игнорировать области активного видеоизображения, считывая только служебные данные в интервалах гашения обратного хода кадровой развертки. Аналогичным образом при вводе потока изображений с чересстрочной разверткой порт PPI может «игнорировать» одно из двух полей.
Кроме того, порт PPI позволяет «пропускать» четные или нечетные элементы данных, что опять же приводит к сокращению требуемой полосы DMA. Например, при работе с потоком 4:2:2 YCbCr это свойство позволяет избирательно считывать элементы яркости или цветности, что очень удобно для разделения алгоритма обработки между двумя процессорами. Кроме того, это позволяет легко преобразовывать цветное изображение в черно-белое.
Очень важно, что порт PPI не привязан аппаратно к какому-либо конкретному видеостандарту. Пользователь может программно задавать значения длины строки и размера кадра, что упрощает реализацию проектов, в которых вместо стандартных форматов NTSC/PAL необходимо работать, например, с CIF или QCIF.

Упаковка данных

Хотя рекомендации BT.656 и BT.601 допускают 10-разрядное квантование пикселов, это значение разрядности слова не очень подходит для обработки. Большинство процессоров очень эффективно обрабатывают 8-,16- или 32-разрядные данные, но любое промежуточное значение разрядности приводит к снижению эффективности. Так, 10-разрядная величина в большинстве процессоров будет обрабатываться как 16-разрядная с приравненными к нулю шестью старшими битами. Это не только дополнительно расходует полосу шин DMA, но и приводит к значительному увеличению объема требуемой памяти.
При использовании данных с разрядностью, превышающей 8 бит, не обеспечивается их оптимальная упаковка. Обычно в высокопроизводительных мультимедийных процессорах периферийные узлы поддерживают механизм упаковки данных, целью которого является снижение общей нагрузки на шину при приеме или выдаче данных от периферийного узла. Например, восьмиразрядный видеопоток, поступающий в периферийный узел со скоростью 27 МБ/с, перед передачей на внутреннюю шину может быть упакован в 32-разрядные слова, и при этом запросы шины будут осуществляться с частотой всего 27/4 = 6,75 МГц. Для сравнения, 10-разрядный видеопоток, имеющий ту же частоту следования данных, можно упаковать на 32-разрядной шине только двумя 16-разрядными блоками, и суммарная частота пересылок на шине будет составлять 27/2 = 13,5 МГц. Поскольку из каждых 16 битов только 10 несут полезную информацию, 37,5% полосы внутренней шины тратится впустую.

 

Возможные сценарии перемещения потоков данных

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

 

Рис. 4. Возможные сценарии пересылки данных через видеопорт

 

На рисунке 4а показано, как источник изображения посылает данные в PPI, затем при помощи механизма DMA они пересылаются в память L1, где подвергаются обработке перед выдачей окончательного результата через высокоскоростной последовательный порт. Эта модель хорошо работает для решения задач обработки видеоизображений с низким разрешением или сжатия неподвижных изображений (наподобие JPEG), и в тех случаях, когда обработку можно вести небольшими блоками (несколько строк), которые при обработке последующих блоков уже не требуются.
На рисунке 4б показано, что видеоданные не помещаются в память L1, а вместо этого направляются в память L3. Данная конфигурация поддерживает такие алгоритмы, как MPEG 2 и MPEG 4, в которых для выполнения временного сжатия требуется хранение в памяти промежуточных видеокадров. При таком сценарии для передачи макроблоков пикселов и других промежуточных данных организуется двунаправленный поток DMA между областями памяти L1 и L3.

 

Видео-АЛУ

В большинстве задач обработки видеоизображений используются 8-разрядные данные, поскольку отдельные составляющие пикселов (и RGB, и YCbCr) обычно имеют размерность байта. Наличие в процессоре 8-разрядных видео-АЛУ и байтовой адресации позволяют значительно повысить производительность в задачах попиксельной обработки. Это нетривиальный момент, так как процессоры для встраиваемых систем обычно работают с 16- или 32-разрядными данными.
Некоторые мультимедийные процессоры для встраиваемых приложений имеют команды, оптимизированные для эффективной обработки 8-разрядных видеоданных. Например, команда SAA (Subtract-Absolute-Accumulate — счетверенное вычитание/взятие модуля/накопление 8-разрядных чисел) хорошо подходит для поблочного анализа движения в видеоизображениях, на котором основан формат сжатия MPEG. Эта команда выполняет операцию вычитания над четырьмя парами байтов, взятия модуля каждой из разностей и накопления отдельных результатов. Все эти операции производятся в одном цикле и реализуют следующую формулу:

 

 

Рассмотрим еще один пример — вычисление среднего по четырем соседним точкам (сверху, снизу, слева и справа от текущего пиксела), которое используется при фильтрации изображений. Обычно для получения результата при такой постановке задачи требуются четыре сложения и одно деление (или умножение, или сдвиг). Применение команды BYTEOP2P позволяет реализовать в процессоре Blackfin подобное усреднение сразу для двух пикселов за один процессорный цикл.

 

Применение DMA

Поддержка режима двухмерного DMA обеспечивает мультимедийному процессору для встраиваемых систем ряд преимуществ с точки зрения системного уровня. Этот режим позволяет манипулировать данными в процессе передачи, за счет чего можно упростить пересылку макроблоков между областями внутренней и внешней памяти. Его применение устраняет непроизводительные издержки, характерные для пересылки данных, расположенных в памяти не по последовательным адресам. Кроме того, с помощью двухмерного DMA можно избирательно передавать вместо всего изображения только требуемый его участок.
Режим двухмерного DMA позволяет также размещать данные в памяти в наиболее естественном порядке для алгоритмов обработки. Рассмотрим в качестве примера ситуацию, когда данные RGB поступают в память L2 процессора из CCD-сенсора в формате RGB444 (см. рис. 5).

 

Рис. 5. Изменение порядка следования данных при помощи двухмерного DMA

 

При помощи двухмерного DMA этот поток может быть помещен в память L2 в виде раздельных массивов R-, G- и B-составляющих.
Как определить, какая структура, планарная или с перемежением данных, должна быть у буфера? Преимущество структур с перемежением данных в том, что они являются естественным выходным форматом для сенсоров изображения и естественным входным форматом для видеокодеров. С другой стороны, планарные буферы, то есть отдельные области памяти для каждой из составляющих пикселов, являются более эффективными структурами для большинства алгоритмов обработки видеоизображений, поскольку многие из них (в том числе JPEG и MPEG) работают с каналами яркости и цветности раздельно. Более того, при размещении данных в SDRAM их упорядочивание в виде планарных буферов позволяет сократить издержки на открытие новых страниц.

Оставьте отзыв

Ваш емейл адрес не будет опубликован. Обязательные поля отмечены *