АНАЛОГО-ЦИФРОВАЯ «СИСТЕМА НА КРИСТАЛЛЕ» МУЛЬТИМЕДИЙНОГО ПРОЦЕССОРА MCAM-01 СЕРИИ «МУЛЬТИКАМ» А.А. Беляев1, Т.В. Солохина1, А.В. Глушков1, Ю.Н. Александров1, Я.Я. Петричкович1, Ю.В. Миронова1, Ю.М. Герасимов2 1 ГУП НПЦ «ЭЛВИС», secretary@elvees.com 2 ЗАО ЦП «АНГСТРЕМ-СБИС» 1. Введение Разработанная в НПЦ «ЭЛВИС» [1] платформа «МУЛЬТИКОР» - это комплекс современных аппаратно-программных средств, предназначенных для проектирования сложных интегральных схем типа «систем на кристалле» и реализации различных приложений на их основе (http://www.elvees.ru). В рамках данной платформы создана серия программируемых СнК цифровых сигнальных контроллеров [2-5] - МС-12, МС-24, МС-0226 и др. Приборы данной серии имеют универсальную систему команд, включающую операции с данными в форматах с фиксированной и плавающей точкой, и не специализированные под какой-либо конкретный круг приложений. Предметом рассмотрения настоящей статьи являются отличительные особенности новой СБИС Мультимедийного процессора (МСаm-01), разработанной совместно с партнерами НПЦ “ЭЛВИС” - "АНГСТРЕМ-М" (топологическое проектирование) и “АНГСТРЕМ-СБИС” (разработка аналоговых блоков и PLL). Рассматриваются также возможности применения такой микросхемы в различных мультимедийных приложениях. Назначение, функциональные возможности и область применения процессора MCam-01 рассматриваются во 2 разделе данной статьи. Раздел 3 посвящен архитектурным особенностям процессора. В разделе 4 рассматривается типовое применение данной микросхемы в качестве контроллера цифровой фото/видео камеры. Оценка функциональных возможностей процессора MCam-01 на примере задачи сжатия изображений/видео по стандарту JPEG/MJPEG приволится в разделе 5, а в разделе 6 дается сравнение мультимедийного процессора MCam-01 с имеющей аналогичное назначение микросхемой TMS320DM270 фирмы Texas Instruments [6]. В разделе 7 делаются итоговые замечания и оцениваются перспективы применения процессора MCam-01 и дальнейшего развития серии «Мультикам». 2. Назначение, функциональные возможности и область применения микросхемы MCam-01 Микросхема MCam-01 разрабатывалась как сигнальный контроллер для современной цифровой фото/видео камеры со стандартным набором возможностей, присущих устройствам указанного назначения. В частности, сигнальный контроллер указанного назначения (мультимедийный процессор) должен иметь в своем составе интерфейсы: - ввода/вывода видео сигнала; - ввода/вывода аудио сигнала; - интерфейсы различных типов памяти - FLASH, SRAM, SDRAM – для хранения программ и данных; - коммуникационные интерфейсы USB, UART, I2C, SPI и др. для обменов с PC и другими носителями информации; - отладочный интерфейс JTAG. По своим функциональным возможностям мультимедийный процессор должен обеспечивать выполнение в реальном времени необходимых процедур ввода/вывода аудио и видео сигналов, их компрессии/декомпрессии, обработки и хранения. В частности, мультимедийный процессор должен обеспечивать: - ввод/вывод цифрового видео сигнала в одном из стандартных форматов; - сжатие неподвижных изображений по стандарту JPEG; - сжатие видео по стандартам MJPEG, MPEG-2/4, H.263, H.264/AVC; - дополнительные функции по управлению камерой: определение экспозиции, автофокус, балансировка белого, коррекция изображений, функция телетекста и др. - ввод/вывод аналогового аудио сигнала, сжатие звука по стандартам G.711, G.722, G.723.1, G.726, G.729, MP3-декодирование. - обмен данными с PC и другими носителями информации. Мультимедийный процессор MCam-01 обладает всеми указанными интерфейсами и достаточной вычислительной мощностью для выполнения перечисленных функций. Это позволяет утверждать, что микросхема MCam-01 обладает необходимыми функциональными возможностями 446 для того, чтобы стать элементной базой для эффективных программно-аппаратных решений не только в качестве сигнального контроллера цифровой фото/видео камеры, но также и для широкого круга «мультимедийных» приложений, связанных с обработкой звука, видео и неподвижных изображений, в том числе систем цифрового телевидения. 3. Особенности архитектуры MCam-01 Выбор архитектурных и схемотехнических решений при проектировании процессора MCam01 производился с учетом следующих основных требований, которым должен удовлетворять мультимедийный процессор: - высокая производительность, достаточная для реализации перечисленных функций обработки аудио/видео данных в реальном времени; - наличие набора «мультимедийных» интерфейсов, необходимых для ввода-вывода видео- и аудио- сигналов, управляющей информации, а также обменов с PC и другими носителями информации; - умеренное энергопотребление. По сравнению с процессорами базовой серии «Мультикор» микросхема MCam-01 имеет ряд существенных архитектурных отличий, определяемых указанными выше требованиями и обеспечивающих возможность эффективной реализации на ее основе различных «мультимедийных» приложений. Ниже перечислены основные особенности архитектуры мультимедийного процессора MCam-01. 1) В состав MCam-01 входят три процессорных ядра - RISC-ядро и два DSP-ядра. 2) Основная вычислительная мощность обеспечивается двумя DSP-ядрами ELcore-17ТМ. Высокая производительность DSP-ядер достигнута благодаря глубокой 7-фазной конвейеризации программного конвейера (для сравнения: в контроллерах МС-12, МС-24 реализован 3-фазный, а в контроллерах МС-0226, МС-0226G – 4-фазный конвейер). В результате процессор MCam-01 имеет производительность примерно в 8 раз большую, чем процессор МС-12 серии «Мультикор». 3) В системе инструкций DSP-ядра ELcore-17ТМ поддерживаются операции только с фиксированной точкой (16- и 32-разрядной). Исключение операций с плавающей точкой, которые не являются необходимыми для реализации функций обработки видео- и аудио-сигналов, позволило упростить вычислительные устройства DSP-ядра и соответственно понизить потребляемую мощность. 4) RISC-ядро усилено аппаратной поддержкой операций умножения и деления, ускоряющих выполнение данных операций. Это позволяет, частности, производить обработку звука ресурсами одного только RISC-ядра, не прибегая к использованию DSP-ядер. 5) Мощный контроллер DMA позволяет выполнять обмены между портами и различными областями памяти одновременно по 8-ми каналам. Помимо вычислительных ресурсов, возможность одновременной передачи данных по нескольким каналам крайне важна при реализации «мультимедийных» приложений, связанных с одновременным вводом-выводом различных типов сигналов и данных. 6) В качестве двух системных шин в микросхеме MCam-01 используются две модификации шины AMBA (Advanced Microcontroller Bus Architecture) [7], принятой в качестве стандарта для платформы «МУЛЬТИКОР» – AMBA AHB и AMBA AXI. Шина AMBA AHB работает под управлением RISC-ядра и предназначена для обменов с «медленными» периферийными устройствами и управляющими регистрами. Шина AMBA AXI работает, как правило, под управлением контроллера DMA и служит для обменов между портами и различными областями памяти, которые благодаря структуре шины AMBA AXI могут производиться по нескольким каналам одновременно. 7) Отличительной особенностью процессора MCam-01 является то, что два DSP-ядра работают на общем поле памяти, что предельно упрощает обмен данными между ними и тем самым повышает эффективность межпроцессорного взаимодействия. Кроме того, в составе MCam-01 имеется специальный буфер объемом XBUF 16 32-разрядных слов, предназначенный для обменов флагами между тремя процессорными ядрами и синхронизации исполняемых программ при помощи механизма «семафора». 8) Процессор MCam-01 обладает широким набором интерфейсов (внешних портов), к числу которых относятся: - встроенный 12-разрядный звуковой сигма-дельта АЦП с частотой выборки 16 кГц для ввода аудио сигнала голосового диапазона (0 - 3,4 кГц); - встроенный 2-канальный 16-разрядный звуковой сигма-дельта ЦАП с частотой выборки 32 кГц для вывода аудио сигнала звукового диапазона (20 Гц - 20 кГц); - порт ввода видеоданных (VPIN). Порт предназначен для ввода цифровых видеоданных по 8/10-разрядному параллельному интерфейсу в формате стандарта BT.656 (ITU-R Recomendation BT.656); 447 - порт вывода видеоданных (VPOUT). Порт обеспечивает вывод видеоинформации в формате стандартов CCIR601, BT.656 (ITU-R Recommendation BT.656), SMPTEx, 16-разрядного RGB (5R/6G/5B) и монохромного видео с последовательной разверткой (raw video); - контроллер шины USB. Порт обеспечивает, в частности, передачу сжатых видеоданных в компьютер в соответствии со спецификацией USB 1.1 (Slave); - контроллер шины I2C (master). Контроллер обеспечивает передачу управляющей информации (например, к ПЗС-приемнику изображения) по простому 2-проводному интерфейсу I2C, разработанному фирмой Philips [8]; - два линковых порта (LPORT), каждый из которых может быть сконфигурирован как порт ввода-вывода общего назначения (GPIO). Линковый порт совместим с одноименным портом, разработанным фирмой Analog Devices [9], и предназначен для организации межпроцессорных обменов по 4-разрядному параллельному интерфейсу; - два универсальных асинхронных порта UART. Данный интерфейс, в частности, может использоваться для обменов данными с IBM PC через COM-порт по интерфейсу RS-232. Второй порт может быть использован для подключения инфракрасного датчика, через который может осуществляться дистанционный ввод управляющей информации. 9) При проектировании микросхемы MCam-01 большое внимание было уделено проблеме минимизации энергопотребления. Режим энергосбережения реализуется, в частности, путем перехода на пониженную рабочую частоту, а также путем блокировки переключения неработающих устройств. 4. Применение MCam-01 в качестве контроллера цифровой фото/видео камеры Типовая схема применения микросхемы MCam-01 в качестве сигнального контроллера для современной цифровой фото/видео камеры приведена на рис.1. MCam-01 CCD/CMOS video in Sensor control VPIN VPOUT video out NTSC/PAL Encoder TV LCD Controller LCD I2C motor keys 1 2 UART 3 audio in IR Sensor GPIO ADC DAC audio out (stereo) USB COM UART LPT PC USB JTAG SDRAM MPORT FLASH USB,UART,GPIO,MPORT Memory Card Controller Removable Storage TM TM Compact Flash , SmartMedia , TM Memory Stick , Secure Digital Рис. 1. Структурная схема цифровой фото/видео камеры на базе мультимедийного процессора MCam-01 Программы, исполняемые мультимедийным процессором MCam-01, хранятся во FLASHпамяти, а данные – в памяти SDRAM. Цифровые видеоданные (video in) поступают на входы порта VPIN процессора MCam-01. Управление датчиком производится при помощи шины I2C. Выходной цифровой видеосигнал (video out) с порта VPOUT может быть подан на внешний формирователь аналогового телевизионного 448 сигнала (NTSC/PAL Encoder) либо на вход контроллера ЖК-монитора (LCD Controller) для отображения соответственно на телевизоре (TV) или ЖК-дисплее (LCD). Входной аналоговый аудио сигнал (audio in) подается на вход встроенного аналогоцифрового преобразователя ADC. Выходной аналоговый аудио сигнал (audio out) со встроенного цифро-аналогового преобразователя DAC подается на внешний усилитель для воспроизведения. Компрессированные аудио/видеоданные могут быть выведены в компьютер (PC) через порт USB либо сохранены на внешнем съемном носителе (Removable Storage) различных типов, подключаемом через контроллер съемной памяти (Memory Card Controller) к какому-либо из портов: USB, UART, GPIO, MPORT. Порт ввода-вывода общего назначения GPIO (General Purpose InputOutput) может также использоваться для приема управляющих сигналов с кнопок (keys) и для управления двигателем (motor) фото/видео камеры. Связь мультимедийного процессора MCam-01 с компьютером может производиться через порты USB и UART, а также через порт JTAG в режиме отладки. К одному из портов UART может быть также подключен инфракрасный датчик (IR Sensor), через который может осуществляться дистанционный ввод управляющей информации. 5. Оценка функциональных возможностей процессора MCam-01 на примере задачи сжатия изображений/видео по стандарту JPEG/MJPEG В настоящем разделе дается сравнительная оценка производительности процессора MCam-01 и ранее разработанного процессора серии «Мультикор» - 1892ВМ3Т(МС-12). Сравнение вычислительных возможностей указанных процессоров производится применительно к наиболее распространенному методу сжатия неподвижных изображений - стандарту JPEG [10,11] и реализуемому на его основе методу сжатия движущихся изображений - MJPEG (Motion-JPEG). Процедура сжатия изображений по стандарту JPEG включает в себя следующие этапы (см. рис.2): 1) Преобразование цветовых компонент изображения, то есть перевод изображения из цветового пространства RGB в цветовое пространство YCbCr. 2) Двумерное дискретное косинус-преобразование (DCT). 3) Квантование коэффициентов преобразования. 4) Переупорядочение двумерного массива коэффициентов в одномерный по зигзагообразному закону. 5) Кодирование квантованных коэффициентов (нулевой коэффициент – постоянная составляющая – кодируется отдельно). Преобразование цветовых компонент DCT Квантование Zсканирование Кодирование Рис. 2. Этапы сжатия изображений по стандарту JPEG В рамках работ по созданию прикладных библиотек для процессоров серии «Мультикор» в НПЦ «ЭЛВИС» был программно реализован алгоритм сжатия изображений по стандарту JPEG на ассемблере DSP-ядра ELcore-14. Вычислительные затраты для DSP-ядра ELcore-14 (МС-12), необходимые для реализации отдельных процедур JPEG-сжатия, в пересчете на один монохромный пиксел (цветовую компоненту) приводятся ниже: Преобразование цветовых компонент 4,0 инстр./пиксел DCT 4,1 инстр./пиксел Квантование 1,1 инстр./пиксел Z-сканирование 1,7 инстр./пиксел Кодирование 4 – 24, в среднем ~ 9 инстр./пиксел Всего: ~ 20 инстр./пиксел Эта же программа может быть реализована практически без изменений на базе DSP-ядра ELcore-17 (MCam-01). На основании полученных данных можно оценить вычислительные затраты, необходимые для программной реализации JPEG/MJPEG-кодера для мультимедийного процессора MCam-01. 449 Ниже в табл. 1 приведены характеристики производительности и процентные показатели загруженности процессоров МС-12 и МСam-01 при реализации MJPEG-сжатия видео формата VGA (цветовая модель - Bayer pattern [12]). (Кадр формата VGA содержит 640*480 = 307200 пикселов; при скорости 25 кадров/сек поток входных данных составляет 7,68 млн. пикселов в секунду). Таблица 1 Характеристики производительности и процентные показатели загруженности процессоров МС-12 и MCam-01 при реализации MJPEG-сжатия видео формата VGA (предварительно) МС-12 MCam-01 Количество DSP-ядер 1 2 Рабочая частота, МГц 100 350 Суммарная производительность всех DSP, млн. инстр./с 100 700 Пиковая производительность, 16-разрядная фиксир. точка, млн. оп./c 800 5600 192% 24% Использование вычислительных ресурсов DSP при реализации MJPEG-сжатия видео формата VGA (25 кадров/сек) Заметим, что при реализации данной программы ресурсы RISC-ядра остаются практически незадействованными. Это позволяет использовать RISC-ядро, например, для кодирования звука. Что касается более сложных методов сжатия видеосигнала - MPEG-2/4, H.263, H.264/AVC, то они потребуют оценочно в 2-3-4 раза больше вычислительных ресурсов, чем рассмотренный алгоритм JPEG/MJPEG. С большой долей уверенности можно утверждать, что они также будут успешно реализованы на базе процессора MCam-01. В 2005 г. в НПЦ «ЭЛВИС» была разработана и запущена в изготовление тестовая СБИС MCam-01S - первая микросхема новой специализированной серии аналого-цифровых «систем-накристалле», ориентированной на мультимедийные приложения, - серии «Мультикам». Топология СБИС мультимедийныйного процессора представлена на рис. 3 ниже, на которой видны IP –ядра СнК и аналоговые блоки ЦАП/АЦП. Микросхема спроектирована по технологическим нормам 0.18мкм и имеет размеры 5x5 мм*мм. Рис. 3. Топология микросхемы Мультимедийного процессора МСам-01S 6. Сравнение мультимедийных процессоров MCam-01 и TMS320DM270 При проектировании мультимедийного процессора MCam-01 в качестве прототипа была выбрана имеющая аналогичное назначение микросхема TMS320DM270 (Digital Media Processor) , разрабатываемая в настоящее время фирмой Texas Instruments. 450 Сравнительные характеристики процессоров MCam-01 и TMS320DM270 представлены в табл. 2. Таблица 2 Сравнительные характеристики мультимедийных процессоров TMS320DM270 (Texas Instruments) и MCam-01 (НПЦ «ЭЛВИС») TMS320DM270 MCam-01 Тестовый кристалл Серийный кристалл Технология, корпус, архитектура Технология: 0.13мкм 0.18 мкм 0.13мкм Питание: (1.5В - ядро/3.3В - I/O) (1.8В- ядро/3.3В - I/O) (1.5 В - ядро/3.3В - I/O) Корпус: 288 выводов MicroStar BGA 208 выводов TQFP уточняется 80 MГц ARM7 ТМ 32-bit RISC 160 МГц RISCore ТМ Два 350МГц DSP-ядра ELcore-17ТМ 90 MГц TMS320C54x DSP Аппаратный кодер переменной длины(VLC/VLD) Программно на DSP ELcore-17 ТМ 180 MГц 4SIMD image-processing engine (iMX) Программно на DSP ELcore-17 ТМ Аппаратная пиксельная предобработка (коррекция) для цифровой камеры Программная пиксельная предобработка (коррекция) для цифровой камеры Программное обеспечение – Imaging: JPEG – Imaging: JPEG (JPEG2000 –в перспективе) – Video: H.263, M-JPEG, MPEG1, MPEG4 (atVGA), Nancy, WMV, DivX – Video: M-JPEG, H.263 (H.264 – в перспективе), MPEG2, MPEG4 (at VGA) – Audio: AAC, ATRAC3, MP3, WMA – Audio: MP3 – Voice: AMR, G.723.1, G.726, G.711 – Voice: G.711, G.722, G.723.1, G.726, G.729 Экспозиция, автофокус, балансировка белого для цифровой камеры в реальном времени Экспозиция, автофокус, балансировка белого для цифровой камеры в реальном времени Интерфейсы 120 MГц SDRAM с интерфейсом 16/32 бит 120 MГц SDRAM с интерфейсом 16/32 бит - SRAM с интерфейсом 8/16/32 бит FLASH до 16 MB FLASH до 64 MB с интерфейсом 8/16/32 бит GPIO, два UART, USB 1.1 GPIO, два UART, USB 1.1 Цифровой 8-/16-разрядный видео вход/выход Цифровой 8-/10-/16-разрядный видео вход/выход 10-разрядный ЦАП для формирования аналогового видео-выхода (NTSC/PAL) - McBSP - - Аналоговый аудио вход (встроенный 12- разрядный моно АЦП) Аналоговый аудио выход - (встроенный 16-разрядный стерео ЦАП) 2 IS - I2S Два SPI (master/slave) - SPI (master/slave) I2C (master) I2C (master) Внешняя начальная загрузка программ через Внешняя начальная загрузка программ через последовательный интерфейс (SIF) или хостпараллельный интерфейс памяти (MPORT) интерфейс В приводимой таблице даны два варианта параметров: для тестового кристалла, изготовленного к настоящему времени и представляющего собой упрощенную версию мультимедийного процессора, и для серийной микросхемы с полным набором функциональных возможностей. По своим функциональным возможностям, как видно из приведенной таблицы, процессор MCam-01 практически не уступает своему прототипу TMS320DM270. В отношении 451 потребляемой мощности тестовый кристалл процессора MCam-01, по-видимому, будет несколько проигрывать по причине того, что он изготавливается по технологии 0,18мкм, в отличие от TMS320DM270, изготавливаемого по технологии 0,13мкм. 7. Заключение Рассмотренная в данной статье микросхема MCam-01 является первой микросхемой новой серии специализированных сигнальных контроллеров, ориентированных на мультимедийные приложения, - серии «Мультикам». Микросхема MCam-01 представляет собой сложную трехпроцессорную систему на кристалле, обладающую рядом существенных отличий в архитектуре, системе команд и схемотехнике от процессоров серии «Мультикор». Процессор MCam-01 обладает высокой производительностью (примерно в 8 раз больше, чем у процессора МС-12 серии «Мультикор») и широким набором мультимедийных интерфейсов. Благодаря этому процессор MCam-01 способен одновременно решать задачу сжатия видео сигнала формата VGA с полной кадровой скоростью, кодирование аудио сигнала, обмен данными с компьютером, а также выполнять функции управления. Это позволяет утверждать, что микросхема MCam-01 обладает достаточными функциональными возможностями для реализации на ее основе широкого круга «мультимедийных» приложений, связанных с обработкой звука, видео и неподвижных изображений, в том систем цифрового телевидения. ЛИТЕРАТУРА 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Александров Ю.Н., Беляев А.А., Глушков А.В., Грибов Ю.Н., Никольский А.В., Петричкович Я.Я., Солохина Т.В. Новая отечественная платформа СБИС «МУЛЬТИКОР» для высокоточной скоростной обработки информации и управления объектами // Цифровая обработка сигналов. 2001. - № 3. - С. 15-19. Петричкович Я.Я., Солохина Т.В. Цифровые сигнальные контроллеры «МУЛЬТИКОР» - новые отечественные серии систем на кристалле // Доклады 6-й Международной конференции «Цифровая обработка сигналов и ее применения (DSPA-2004)». - Москва. - 31 марта - 2 апреля 2004. – Т. 1. - С. 8-15. Солохина Т.В., Петричкович Я.Я., Глушков А.В., Беляев А.А., Грибов Ю.И., Никольский В.Ф., Силин В.А., Алексеев М.Н., Александров Ю.Н. Время кентавров: Микросхемы серии Мультикор11хх (МС-11хх) для встраиваемых и мобильных применений // Chip News. - № 8(71). - 2002. С. 10-17. Солохина Т.В., Петричкович Я.Я., Глушков А.В., Александров Ю.Н., Глушков В.Д., Семенович А.М., Беляев А.А., Грибов Ю.И., Никольский В.Ф., Силин В.А., Алексеев М.Н., Бабичевский С.А., Федин В.А. Мультикор-12S - сигнальный контроллер с плавающей точкой для высокоточных встраиваемых применений // Chip News. - № 8(81). - 2003. - С. 4-15. Солохина Т.В., Петричкович Я.Я., Александров Ю.Н., Герасимов Ю.М., Заболотнов И.В., Алексеев М.Н., Беляев А.А., Грибов Ю.И., Глушков В.Д., Никольский В.Ф., Силин В.А., Крымов А.А., Тимофеев О.А., Миронова Ю.В., Перекин Р.Н., Кучинский А.В., Чупринов А.А., Грачев Р.А. Микросхемы базовых серий «МУЛЬТИКОР». Сигнальный микроконтроллер 1892ВМ2Т (МС-24) // Chip News. - № 2(95). - 2005. - С. 20-31. TMS320DM270 – Digital Media Processor // http://www.ti.com/dm270. AMBA Specification (Rev 2.0) // http://www.arm.com. http://www.philips.com. http://www.analog.com. Information Technology: Digital Compression and Coding of Continuous-Tone Still Images: Requirements and Guidelines, 1992. International Telephone and Telegraph Consultative Committee, Recommendation T. 81. Pennebaker W.B., Mitchell J.L. JPEG: Still Image Compression Standard. Norwell, MA: Kluwer, 1993. Bayer B.E. Color imaging array // U.S. Patent 3 971 065, Jul. 1976. 452