Серия TMS320DM36X включает в себя множество процессоров, наиболее известные из которых TMS320DM365, TMS320DM368 и TMS320DM369.
TMS320DM369 и TMS320DM368 полностью совместимы программно и аппаратно с TMS320DM365 и имеют улучшенные характеристики (частота работы основного ядра, разрешение видеопотока). TMS320DM369 содержит дополнительный третий сопроцессор фильтрации шумов [1].
На рисунке 1 представлена функциональная блок-схема процессора серии TMS320DM36X — TMS320DM368. Подсистема ввода и вывода видеоинформации данного процессора обеспечивает ввод одного канала видео и вывод одного канала.
Дальнейшее рассмотрение подсистемы обработки видео будет происходить на основе функциональной блок схемы процессора TMS320DM368.
Рис. 1. Функциональная блок- диаграмма процессора TMS320DM368
Подсистема обработки видео состоит из следующих частей:
- Video Processing Front-End;
– Image Sensor Interface;
– The Image Pipe Interface;
– Image Pipe;
– Face Detection Module;
- Video Processing Back–End;
– OnScreenDisplay;
– Video Encoder / Digital LCD Controller.
- Three-channel DAC.
VPSS — подсистема обработки видео (Video Processing Sub System), которая обеспечивает входной интерфейс (Video Processing Front End или VPFE) для внешних периферийных устройств обработки изображений, таких как датчики изображения, видеодекодеры, и т. д., а также выходной интерфейс (Video Processing Back End или VPBE) для устройств отображения, таких как аналоговые дисплеи SDTV или HDTV, цифровые ЖК-панели и т. д.
В дополнение к этим периферийным устройствам имеется набор общей буферной памяти и управления DMA для обеспечения эффективного использования DDR2 / mDDR. Общая логика (память буфера) является уникальным блоком, который адаптирован для бесперебойного ввода VPSS в систему обработки изображений (видео). Он действует как первичный источник или приемник ко всем модулям VPFE и VPBE, которые запрашивают или передают данные между VPSS и DDR [2].
Чтобы эффективно использовать внешнюю пропускную способность DDR2/mDDR, общая логика (память буферов) взаимодействует со всеми модулями VPFE и VPBE через шину шириной 128 бит.
Крайне важно, чтобы VPSS эффективно использовала пропускную способность DDR2 / mDDR из-за ее больших требований к пропускной способности и требований в реальном времени модулей VPSS. Поскольку возможно сконфигурировать модули VPSS таким образом, что пропускная способность DDR2 / mDDR будет превышена, то предоставляется набор регистров, доступных пользователю для контроля переполнений или сбоев при передаче данных [2].
Блок видеодекодера VPFE состоит из интерфейса источника изображения (ISIF), трансляции изображения (IPIPE), интерфейса трансляции изображения (IPIPEIF) и аппаратного механизма обнаружения лица.
Интерфейс источника изображения ISIF (Image Sensor Interface) отвечает за прием необработанных данных изображения / видео с датчика (CMOS или CCD). Кроме того, ISIF может принимать видеоданные YUV в многочисленных форматах, обычно с так называемых устройств-видеодекодеров [2].
В случае необработанных входных данных выход ISIF требует дополнительной обработки изображения, чтобы преобразовать необработанное входное изображение в окончательное обработанное изображение. Данный интерфейс поддерживает следующие функции:
– Поддержка различных форматов режима суммирования пикселей предоставляется через преобразователь данных ISIF, который преобразует любые форматы в формат Bayer. Максимальная ширина линии, поддерживаемая ISIF — 4736 пикселей.
– Генерирует сигналы синхронизации HD (Horizontal Definition) / VD (Vertical Definition) и идентификатор поля на внешний генератор синхронизации или может синхронизироваться с внешним генератором синхронизации.
– Поддержка до 32 тыс. пикселей (размер изображения) в горизонтальном и вертикальном направлениях.
– Поддержка тактовой частоты до 120 МГц.
– Поддержка стандартного формата ITU-R BT.656 / 1120.
– Поддержка формата YCbCr 422, 8- или 16-бит с дискретными сигналами HSYNC и VSYNC.
– Поддержка до 16-битного ввода.
– Поддержка преобразования цветового пространства.
– Поддержка цветового регулирования усиления и управления смещением уровня черного.
– Возможность управления выходом на DDR2 / mDDR через внешний сигнал разрешения записи.
– Поддержка сжатия от 12 бит до 8 бит DPCM(Дифференциальная импульсно-кодовая модуляция).
– Поддержка сжатия от 10 бит до 8 бит.
– Поддержка генерации вывода в диапазоне 16 бит, 12 бит и 8 бит
– Фильтр шума
– Улучшение 2D-края
Image Pipe (IPIPE) представляет собой программируемый аппаратный модуль обработки изображений, который генерирует данные изображения в форматах Y-Cb-Cr- 4:2:2 или Y-Cb-Cr-4:2:0 из необработанных данных CCD / CMOS. Средство масштабирования изображений также полностью интегрировано в этот модуль. IPIPE также может быть сконфигурирован для работы в режиме изменения размера, что позволяет изменять размер Y-Cb-Cr-4:2:2 или Y-Cb-Cr-4:2:0 без обработки каждого модуля в IPIPE [1]. IPIPE поддерживает следующие функции:
– 12-битная обработка изображений RAW или 16-битное изменение размера Y-Cb-Cr.
– Требуется не менее восьми пикселей для горизонтального гашения и четыре строки для вертикального гашения. В режиме однократного запуска требуется 16 линий гашения после области обработки.
– Максимальное горизонтальное и вертикальное смещение области обработки IPIPE от синхронного сигнала — 65534.
– Максимальная ширина ввода и вывода до 2176 пикселей в ширину (1088 для Resizer (модуль масштабирования)).
– Автоматическое зеркалирование пикселей / линий при выполнении обработки кромок, чтобы ширина и высота были постоянными.
– Преобразование данных 4: 4: 4 в формат 4: 2: 2 с помощью фильтрации низких частот по цветности и выборки вниз до Cb и Cr. (4: 4: 4 до 4: 2: 2).
– Программируемый фильтр с нисходящей или восходящей выборкой для горизонтального и вертикального направлений с диапазоном от 1 / 16x до 16x, при котором фильтр одновременно выводит два изображения с разным увеличением.
– Программируемая справочная таблица для улучшения границ яркости. Регулируемая яркость и контрастность для компонента Y.
– При хранении данных в SDRAM с IPIPE доступны разные форматы данных [YCbCr (4: 2: 2 или 4: 2: 0), RGB (32 бит / 16 бит), исходные данные].
– Переворачивание изображения по горизонтали и / или по вертикали.
IPIPEIF (The Image Pipe Interface) — это интерфейс для передачи данных и синхронизации для ISIF и IPIPE. Источник данных этого модуля: параллельный порт датчика, ISIF или SDRAM, и выбранные данные выводятся в ISIF и IPIPE. Этот модуль также выдает данные вычитания черного кадра (двухсторонние), которые генерируются путем вычитания данных SDRAM из параллельного порта датчика или данных ISIF и наоборот. В зависимости от выполняемых функций он может также перенастраивать временные характеристики HD (Horizontal Definition), VD (Vertical Definition) и PCLK (Peripheral Clock) для ввода в IPIPE и / или ISIF [1]. Интерфейс IPIPEIF поддерживает следующие функции:
– Вычитание темного кадра необработанного изображения, хранящегося в SDRAM, из изображения, поступающего из параллельного порта источника виедосигнала или ISIF.
– Разрядность данных источника виеосигнала — до 16 бит.
– Простая коррекция дефектов для вычитания дефектных пикселей.
– 8-разрядная, 12-разрядная распаковка 8-разрядных, 12-разрядных SDRAM-данных
Face Detection Module — модуль обнаружения лица. Обнаружение лиц связано с определением наличия или отсутствия лиц на данном изображении. Данный модуль может пригодиться, к примеру, для фотоаппаратов. В модуле распознавания лиц поддерживаются следующие функции:
– Высокий уровень обнаружения почти в 100 % при большинстве условий.
– Позволяет обнаруживать в разных направлениях — вверх, влево и вправо.
– Позволяет обнаруживать с вращением в плоскости (RIP) — ± 45 °, @ 0 ° / + 90 ° / -90 °.
– Позволяет обнаруживать при отклонении от плоскости (ROP).
– Горизонтальный (левая / правая) поворот: ± 60 °.
– Вертикальный (вверх / вниз) наклон: ± 30 °.
– Настраиваемый минимальный размер лица 20–40 пикселей.
– Настраиваемая область интереса во входном кадре.
– Настраиваемая начальная позиция во входном кадре.
– Поддерживает до 35 обнаружений лиц в одном кадре.
– Генерация прерываний для ARM с использованием мультиплексированного механизма прерывания видеопамяти (VPSS).
– Надежная работа в условиях низкой освещенности, ночного видения, монохроматического и искаженного цвета, поскольку тон кожи, не используется для распознавания лиц.
– Поддерживаемый размер входного файла (256X192).
– Формат ввода — это 8-битные данные.
Стоит также упомянуть о модуле H3A, который присутствует в TMS320DM369, но в TMS320DM368 отсутствует.
Данный модуль предназначен для поддержки контуров управления для автоматической фокусировки, автоматического баланса белого и автоматической экспозиции путем сбора показателей об изображениях / видеоданных. В модуле H3A есть 2 основных блока:
– Автофокус (AF)
– Автоэкспозиция (AE), Автоматический баланс белого (AWB)
Автофокус извлекает и фильтрует красные, зеленые и синие данные из входных изображений / видеоданных и обеспечивает либо накопление, либо пики данных в указанной области. Указанная область представляет собой двумерный блок данных и называется «paxel» для блока AF. Блок AE / AWB накапливает значения и проверяет насыщенные значения в дополнительной выборке видеоданных. В случае AE / AWB двумерный блок данных называется «window».
Таким образом, кроме ссылки на них разными именами, paxel и window — это, по сути, одно и то же. Однако число, размеры и начальное положение AF-пакетов и окон AE / AWB программируются отдельно. Модуль автофокусировки поддерживает следующие функции:
– Поддержка ввода с DDR2 / mDDR SDRAM (в дополнение к порту ISIF).
– Поддержка пикового режима в Paxel (Paxel определяется как двухмерный блок пикселей).
– Поддержка до 36 Paxels в горизонтальном направлении и до 128 Paxels в вертикальном направлении. Количество горизонтальных paxels ограничено размером памяти (и стоимостью), а вертикальное число paxels — нет. Таким образом, количество paxels в горизонтальном направлении меньше, чем количество paxels в вертикальном направлении.
– Программируемая ширина и высота для Paxel. Все paxels в рамке будут иметь одинаковый размер.
– Программируемое красное, зеленое и синее положение в матрице 2x2.
– Отдельный горизонтальный старт для paxel и фильтрации.
– Программируемый шаг вертикальной линии в пределах paxel.
Модули Автоэкспозиция (AE), Автоматический баланс белого (AWB) поддерживают следующие функции:
– Поддержка ввода с DDR2 / mDDR SDRAM (в дополнение к порту ISIF)
– Накапливать обрезанные пиксели вместе со всеми не насыщенными пикселями.
– Поддержка до 36 горизонтальных окон.
– Поддержка до 128 вертикальных окон.
– Программируемая ширина и высота для окон. Все окна в кадре будут одинакового размера.
– Отдельная вертикальная координата и высота для черного ряда paxels, который отличается от остальных цветных пакселов.
– Программируемые горизонтальные точки выборки в окне.
– Программируемые вертикальные точки выборки в окне.
Модуль вывода видеоизображения VPBE состоит из модуля экранного дисплея (OSD) и видеокодера / цифрового контроллера LCD (VENC / DLCD).
Модуль экранного дисплея (On Screen Display) — основная функция модуля OSD заключается в сборе и смешивании видеоданных и данных отображения / растрового изображения, а затем передачи их в Video Encoder (VENC) в формате Y-Cb-Cr. Смешивание видеоданных и данных отображения необходимо для наложения текста на видео. Данные видео и дисплея считываются из внешней памяти DDR2 / mDDR. OSD программируется через регистры управления и параметров. Поддерживаемые функции экранного дисплея:
– Поддержка двух видеоокон и двух OSD растровых окон, которые могут отображаться одновременно.
– Видео-окна поддерживают данные Y-Cb-Cr в 4:2:2 и 4:2:0 форматах из внешней памяти, с возможностью обмена порядком компонента Cb-Cr в 32-битном слове.
– OSD растровые окна поддерживают = индекс ширины 4/8 бит в цветовой палитре
– Кроме того, одно окно растрового изображения OSD может быть настроено на одно из следующего:
1) YUV 4:2:2 (то же, что и видеоданные).
2) Данные формата RGB в 16-битном режиме (R = 5 бит, G = 6 бит, B = 5 бит)
3) 24-битный режим (каждый R / G / B = 8 бит) с смешиванием уровня пикселя с окнами видео.
– Программируемая цветовая палитра с возможностью выбора между таблицей RAM / ROM с поддержкой 256 цветов.
– Поддержка двух таблиц ROM, одна из которых может быть выбрана в определенное время.
– Отдельное управление включением / отключением для каждого окна.
– Программируемые координаты ширины, высоты и основания для каждого окна.
– Поддержка масштабирования x2 и x4 в горизонтальном и вертикальном направлениях.
– Возможность изменения размера с VGA на NTSC / PAL (от 640x480 до 720x576) для OSD и видеоокна.
В OSD-модуле существуют следующие ограничения:
– Если фильтр вертикального изменения размера включен для любого из видеоокон, максимальный горизонтальный размер окна не может быть больше 1024 в настоящее время. Это связано с ограничением в размере линейной памяти.
– Невозможно одновременно использовать оба ПЗУ. Тем не менее, окно может использовать ОЗУ, в то время как другое использует ПЗУ.
Видеокодер (Video Encoder) — устройство преобразования видеоинформации в требуемый выходной формат.
Video Encoder состоит из трех основных блоков:
– Видеокодер для генерации аналогового видеовыхода;
– Контроллер для генерации цифрового выходного сигнала RGB / YCbCr и сигналов синхронизациидля жидкокристаллического дисплея;
– Синхронизирующий генератор.
Видеокодер для аналогового видео поддерживает следующие функции:
– Входной тактовый сигнал — 27 МГц или 74,25 МГц
1) Поддержка SDTV.
– Композитный NTSC-M, PAL-B / D / G / H / I.
– S-Video (Y / C).
– Компонент YPbPr.
– RGB.
– CGMS / WSS.
– Субтитры
2) Поддержка HDTV.
– 525p / 625p / 720p / 1080i.
– Компонент Y-Pb-Pr.
– RGB.
– CGMS / WSS;
– Операция ведущий / ведомый
– Три 10-разрядных D / A преобразователя
– Цифровой ЖК-контроллер поддерживает следующие функции:
– Программируемый генератор синхронизации
3) Различные форматы вывода.
– YCbCr 4: 2: 2 16-бит.
– YCbCr 4: 2: 2 8-бит.
– Параллельный RGB 16/18/24-бит.
– Последовательный RGB 8-разрядный;
– Вставка EAV / SAV
– Операция ведущий / ведомый
В процессоре TMS320DM368 применяется трёхканальный ЦАП. Каждый из каналов имеет разрядность 10 бит. Данный видео ЦАП может работать в двух режимах: формирование трехканального компонентного HD-видеосигнала (Y-Pb-Pr), либо одноканального композитного SD-видеосигнала.
В трехканальной конфигурации ЦАП не имеет внутреннего усилителя видеосигналов. К выходам ЦАП для работы на типовую нагрузку (видеомонитор) требуется подключать внешние видеоусилители.
В трехканальной конфигурации один из каналов ЦАП может использоваться вместе с внутренним видеоусилителем. В этом варианте нагрузка (видеомонитор) может быть подключена непосредственно к выходу внутреннего видеоусилителя процессора.
Литература:
- http://www.compel.ru/2014/02/13/tms320dm36x-videoprotsessoryi-davinci-s-bogatoy-periferiey-ot-ti. — сведения о процессорах серии TMS320DM36x.
- http://www.ti.com/lit/ds/sprs668c/sprs668c.pdf — документ о процессоре TMS320DM368.