Транскодирование – это преобразование видеоданных из одного формата в другой. Необходимость транскодирования видео вызвана двумя основными причинами: быстрым увеличением числа стандартов кодирования видеоданных и ограниченной пропускной способностью каналов передачи потокового видео. Решения компании Texas Instruments позволяют эффективно выполнять транскодирование в целом ряде приложений обработки видеоданных.
Потребность в транскодировании видео
Сегодня технологии сжатия цифрового видео важны практически во всех типах видеоприложений. Значимость таких параметров как сжатие и совместимость данных еще более возрастает из-за усиливающейся тенденции к конвергенции средств коммуникации.
К наиболее известным приложениям в области цифрового видео относятся DVD, телевидение высокой четкости (HDTV), видеотелефония/обеспечение телеконференций и, с недавних пор, видеонаблюдение. Каждая из этих технологий имеет свою историю развития, соответственно, в каждой из них существуют собственные алгоритмы сжатия.
Транскодирование играет две важные роли. Во-первых, оно обеспечивает коммуникации между существующими и вновь появляющимися устройствами. Например, многие существующие системы видеоконференций основаны на стандарте кодирования видеоданных H.263. Более новые системы видеоконференций используют базовый профиль H.264/AVC. Таким образом, для обеспечения коммуникации между этими системами необходимо транскодирование видео в реальном времени. Во-вторых, информационные сети, в особенности Интернет, имеют ограниченную пропускную способность при передаче видео. Так, большинство видеофильмов в настоящее время хранится на дисках DVD в формате MPEG2. Ограничения на пропускную способность в сервисах видео по запросу и потокового видео по IP-сетям требуют преобразования этих видеоданных в формат с большей степенью сжатия. Это достигается путем транскодирования видео в режиме реального времени перед передачей.
В целом, в результате транскодирования высвобождается до 50% пропускной способности сети без потери качества видео.
Транскодирование в видеоконференциях
Итак, одно из применений транскодирования – системы видеоконференций. Рассмотрим типичную схему транскодирования, применяемую в таких системах (рис.1). Один сигнальный процессор (DSP2) декодирует входной видеопоток и генерирует восстановленный видеокадр, который передается на другой цифровой сигнальный процессор (в данном примере это DSP1) через последовательный интерфейс RapidIO (sRIO). DSP1 кодирует восстановленный видеокадр в нужный формат. Обычно на одной стороне видеоконференции используется оборудование на базе стандарта H.263, тогда как другая сторона использует оборудование на базе стандарта H.264.
Хост-процессор, управляющий сетевым трафиком, взаимодействует с несколькими цифровыми сигнальными процессорами (в данном случае с четырьмя) через соединение по шине PCI.
Ключевая особенность взаимодействия процессоров в этом примере – это их соединение через интерфейс sRIO. Поскольку данные, передаваемые между цифровыми сигнальными процессорами, представляют собой несжатое видео, как правило, с частотой 30 кадров/с, то требования к пропускной способности линии связи между устройствами очень высоки.
Если взять видео в стандартном разрешении NTSC (720 на 480 пикселов) YUV 4:2:0, то размер каждого кадра составит 720×480×1,5 = 518400 байт. Соответственно, при частоте 30 кадров в секунду пропускная способность линии должна составлять примерно 124 Мбит/с.
Выбор интерфейса sRIO диктуют требования к скорости передачи видеоданных и поддержке гибкой структуры коммутации. sRIO поддерживает три скорости передачи данных: 1,24 Гбит/с, 2,5 Гбит/с и 3,125 Гбит/с. В данном интерфейсе применяется технология SerDes для восстановления тактовой синхронизации по потоку данных и используется кодирование 8-b/10-b. Эта спецификация последовательного интерфейса поддерживает порты с одной линией (1X) и с четырьмя линиями (4X). Физический уровень интерфейса sRIO определяет механизм квитирования, который применяют при установлении связи между устройствами, а также порядок обнаружения ошибок, основанный на циклическом избыточном коде. Физический уровень интерфейса устанавливает и приоритет пакетов, используемый при маршрутизации в пределах коммутирующей матрицы.
Чтобы в полной мере воспользоваться преимуществами пропускной способности sRIO, процессоры должны иметь эти интерфейсы. Такие процессоры предлагает компания Texas Instruments. Например, сигнальный процессор TMS320C6455 снабжен встроенным интерфейсом sRIO, который обеспечивает четыре одновременных соединения и имеет пиковую скорость передачи данных 20 Гбит/с в обе стороны.
Процессор TMS320C6455
Помимо интерфейса sRIO процессор C6455 имеет дополнительный набор важных функций, которые делают его идеальным устройством для транскодирования. Эти функциональные особенности можно объединить в четыре основных блока.
Наличие большого числа высокоскоростных интерфейсов ввода-вывода. Разработчики систем используют различные решения, поэтому цифровой сигнальный процессор для приложений обработки видеоданных должен предусматривать порты ввода-вывода для соединения модулей системы на уровне плат. Как было сказано ранее, в C6455 имеется встроенный порт sRIO для связи между устройствами.
Другие варианты ввода-вывода в C6455 – это контроллер обращения к среде Ethernet (Ethernet Media Access Controller, EMAC) со скоростью 1 Гбит/с, 32-битный контроллер памяти с удвоенной скоростью обмена данными (DDR2-500), а также 66-МГц шина для подключения периферийных устройств (PCI). Встроенный интерфейс ATM (UTOPIA 2) позволяет задействовать процессор C6455 в инфраструктуре телекоммуникаций.
Эффективное перемещение данных внутри микросхемы. Однокристальная архитектура для эффективного перемещения данных – одно из главных преимуществ процессора C6455 по сравнению с его предшественниками. В приложениях обработки видеоданных цифровые сигнальные процессоры работают в качестве ведомых устройств хост-процессора. Следовательно, для них важны высокая пропускная способность, малая задержка и возможность параллельной передачи данных между ведущими и ведомыми устройствами. Данные требования определили архитектуру устройства: периферийные устройства, внутренняя память и ядро процессора взаимодействуют между собой через эффективный коммутатор (switched central resource – SCR) процессора C6455.
Также важна оптимальная организация потока данных. Ее удалось улучшить за счет применения шин памяти с разрядностью 256 бит и внутреннего прямого доступа к памяти (internal direct memory access, IDMA). IDMA обеспечивает перемещение данных в фоновом режиме между двумя уровнями внутренней памяти, а также к шине периферийных устройств и обратно.
Большой объем внутрикристальной памяти. Внутрикристальная статическая оперативная память SRAM работает намного быстрее, чем динамическая внешняя память SDRAM, а ее объем намного меньше ввиду высокой стоимости изготовления. Для типовых приложений в области видео внутрикристальная память служит, главным образом, двум целям: 1) хранит часто используемые код и данные, 2) загружает/выгружает временные данные до и после обработки. Как правило, чем больше объем доступной внутрикристальной памяти, тем выше производительность приложения. В цифровом сигнальном процессоре C6455 размещено целых два мегабайта статической оперативной памяти.
Совместимость программного обеспечения (ПО). Обратная совместимость ПО важна, поскольку множество программ для видеоприложений было разработано задолго до широкого применения транскодирования. Чтобы использовать существующее ПО на новых процессорах, целесообразно повышать производительность DSP не путем изменения его набора команд, а за счет архитектуры ядра процессора. В процессоре C6455 реализованы два архитектурных новшества. Первое связано с введением циклического буфера, потенциально повышающего эффективность программной конвейеризации обработки кода с короткими циклами. Второе – применение 16-разрядных версий изначально 32-разрядных команд, что значительно уменьшает размер программного кода и, таким образом, снижает коэффициент "непопаданий" при обращениях к кэш-памяти.
Прототип системы транскодирования
Транскодирование необходимо также для передачи данных с DVD-дисков по IP-сети, например в обучающей системе компании, в приложениях видео по запросу и широковещательной трансляции видео. В этом случае исходным видеоформатом является MPEG2, а в качестве целевого формата используется в основном WMV9. Отметим, что возможность программирования цифровых сигнальных процессоров позволяет легко поддерживать практически любую комбинацию исходного/целевого видеоформата.
Для транскодирования видеоданных нужно решить множество технических вопросов, таких как преобразование формата, уменьшение битрейта видеопотока и его временного и пространственного разрешения. Поэтому были разработаны различные схемы интеллектуального транскодирования видеоданных. Их главный принцип – в максимально возможном повторном использовании информации, которая содержится во входном видеопотоке.
В данном разделе рассматривается прототип системы транскодирования видео, который пригоден для любых схем транскодирования благодаря использованию архитектуры, основанной на гибкой инфраструктуре аппаратного/программного обеспечения. Чтобы удовлетворить различным целевым сценариям транскодирования видео, выбрана простейшая схема транскодирования, в которой видеопоток полностью декодируется, а затем кодируется повторно в соответствии с новыми ограничениями.
Поток данных в системе начинается на левой стороне схемы (рис.2), со сжатого в формате MPEG2 видеофайла, который хранится на жестком диске, и заканчивается на плоскопанельном дисплее, где видео воспроизводится программой Windows Media Player. В этом демонстрационном варианте видео имеет стандартное разрешение NTSC (720 на 480 пикселов) и транскодируется со скоростью 30 кадров в секунду.
Модуль приемника потока, работающий на DSP1, буферизует поток MPEG2 и организует входные данные для модуля декодера MPEG2. Управление операцией приема данных производится с использованием библиотеки средств разработки сетей (Network Development Kit, NDK) компании TI, которая по существу представляет собой стек TCP/IP. Модуль формирователя пакетов ASF, работающий на процессоре DSP2, формирует пакеты в формате ASF из данных, сжатых в модуле WMV9. В DSP2 также присутствует http-сервер на базе NDK, который обрабатывает запросы на передачу потока от программы Windows Media Player и передает в нее пакеты ASF. Windows Media Player декодирует пакеты ASF и показывает видео на экране.
Одним из наиболее интересных и сложных аспектов передачи потока данных является взаимодействие двух цифровых сигнальных процессоров через интерфейс sRIO. При передаче каждого видеокадра происходит следующее. После того, как DSP1 завершит передачу видеокадра, он посылает пакет данных, который в спецификации протокола sRIO называется DOORBELL. Пакет DOORBELL генерирует системное прерывание в процессоре DSP2, уведомляющее о наличии кадра. В ответ DSP2 запускает процесс кодирования в формат WMV9. Завершив кодирование кадра, DSP2 посылает пакет DOORBELL процессору DSP1. При этом в DSP1 генерируется прерывание, чтобы сообщить о готовности процессора DSP1 продолжить передачу следующего кадра. На практике используется схема буферов с попеременным переключением, чтобы операции кодирования/декодирования и передачи данных выполнялись параллельно.
Блок графического пользовательского интерфейса (GUI) обеспечивает встроенные в систему функции управления и мониторинга. Активность канала связи sRIO и каналов связи Gigabit MAC (GMAC) отображается в реальном времени. При передаче по каналу связи потока данных MPEG-2 средняя скорость передачи составляет 8 Мбит/с, что характерно для кодирования при стандартном разрешении с частотой 30 кадров в секунду. При передаче по каналу связи пакетов ASF средняя скорость передачи составляет 4 Мбит/с. Это показывает, что формат WMV9 способен освободить приблизительно 50% полосы пропускания, обеспечивая сходное качество видео. Для канала связи с интерфейсом sRIO средняя скорость передачи данных составляет 124 Мбит/с.
Таким образом, возможности цифрового сигнального процессора C6455 компании TI в сочетании с интерфейсом sRIO, а также демонстрация описанного прототипа системы транскодирования на основе процессоров C6455 свидетельствуют, что сложная задача передачи видео в IP-сетях может быть успешно решена и в настоящее время, и в будущем.
Сегодня технологии сжатия цифрового видео важны практически во всех типах видеоприложений. Значимость таких параметров как сжатие и совместимость данных еще более возрастает из-за усиливающейся тенденции к конвергенции средств коммуникации.
К наиболее известным приложениям в области цифрового видео относятся DVD, телевидение высокой четкости (HDTV), видеотелефония/обеспечение телеконференций и, с недавних пор, видеонаблюдение. Каждая из этих технологий имеет свою историю развития, соответственно, в каждой из них существуют собственные алгоритмы сжатия.
Транскодирование играет две важные роли. Во-первых, оно обеспечивает коммуникации между существующими и вновь появляющимися устройствами. Например, многие существующие системы видеоконференций основаны на стандарте кодирования видеоданных H.263. Более новые системы видеоконференций используют базовый профиль H.264/AVC. Таким образом, для обеспечения коммуникации между этими системами необходимо транскодирование видео в реальном времени. Во-вторых, информационные сети, в особенности Интернет, имеют ограниченную пропускную способность при передаче видео. Так, большинство видеофильмов в настоящее время хранится на дисках DVD в формате MPEG2. Ограничения на пропускную способность в сервисах видео по запросу и потокового видео по IP-сетям требуют преобразования этих видеоданных в формат с большей степенью сжатия. Это достигается путем транскодирования видео в режиме реального времени перед передачей.
В целом, в результате транскодирования высвобождается до 50% пропускной способности сети без потери качества видео.
Транскодирование в видеоконференциях
Итак, одно из применений транскодирования – системы видеоконференций. Рассмотрим типичную схему транскодирования, применяемую в таких системах (рис.1). Один сигнальный процессор (DSP2) декодирует входной видеопоток и генерирует восстановленный видеокадр, который передается на другой цифровой сигнальный процессор (в данном примере это DSP1) через последовательный интерфейс RapidIO (sRIO). DSP1 кодирует восстановленный видеокадр в нужный формат. Обычно на одной стороне видеоконференции используется оборудование на базе стандарта H.263, тогда как другая сторона использует оборудование на базе стандарта H.264.
Хост-процессор, управляющий сетевым трафиком, взаимодействует с несколькими цифровыми сигнальными процессорами (в данном случае с четырьмя) через соединение по шине PCI.
Ключевая особенность взаимодействия процессоров в этом примере – это их соединение через интерфейс sRIO. Поскольку данные, передаваемые между цифровыми сигнальными процессорами, представляют собой несжатое видео, как правило, с частотой 30 кадров/с, то требования к пропускной способности линии связи между устройствами очень высоки.
Если взять видео в стандартном разрешении NTSC (720 на 480 пикселов) YUV 4:2:0, то размер каждого кадра составит 720×480×1,5 = 518400 байт. Соответственно, при частоте 30 кадров в секунду пропускная способность линии должна составлять примерно 124 Мбит/с.
Выбор интерфейса sRIO диктуют требования к скорости передачи видеоданных и поддержке гибкой структуры коммутации. sRIO поддерживает три скорости передачи данных: 1,24 Гбит/с, 2,5 Гбит/с и 3,125 Гбит/с. В данном интерфейсе применяется технология SerDes для восстановления тактовой синхронизации по потоку данных и используется кодирование 8-b/10-b. Эта спецификация последовательного интерфейса поддерживает порты с одной линией (1X) и с четырьмя линиями (4X). Физический уровень интерфейса sRIO определяет механизм квитирования, который применяют при установлении связи между устройствами, а также порядок обнаружения ошибок, основанный на циклическом избыточном коде. Физический уровень интерфейса устанавливает и приоритет пакетов, используемый при маршрутизации в пределах коммутирующей матрицы.
Чтобы в полной мере воспользоваться преимуществами пропускной способности sRIO, процессоры должны иметь эти интерфейсы. Такие процессоры предлагает компания Texas Instruments. Например, сигнальный процессор TMS320C6455 снабжен встроенным интерфейсом sRIO, который обеспечивает четыре одновременных соединения и имеет пиковую скорость передачи данных 20 Гбит/с в обе стороны.
Процессор TMS320C6455
Помимо интерфейса sRIO процессор C6455 имеет дополнительный набор важных функций, которые делают его идеальным устройством для транскодирования. Эти функциональные особенности можно объединить в четыре основных блока.
Наличие большого числа высокоскоростных интерфейсов ввода-вывода. Разработчики систем используют различные решения, поэтому цифровой сигнальный процессор для приложений обработки видеоданных должен предусматривать порты ввода-вывода для соединения модулей системы на уровне плат. Как было сказано ранее, в C6455 имеется встроенный порт sRIO для связи между устройствами.
Другие варианты ввода-вывода в C6455 – это контроллер обращения к среде Ethernet (Ethernet Media Access Controller, EMAC) со скоростью 1 Гбит/с, 32-битный контроллер памяти с удвоенной скоростью обмена данными (DDR2-500), а также 66-МГц шина для подключения периферийных устройств (PCI). Встроенный интерфейс ATM (UTOPIA 2) позволяет задействовать процессор C6455 в инфраструктуре телекоммуникаций.
Эффективное перемещение данных внутри микросхемы. Однокристальная архитектура для эффективного перемещения данных – одно из главных преимуществ процессора C6455 по сравнению с его предшественниками. В приложениях обработки видеоданных цифровые сигнальные процессоры работают в качестве ведомых устройств хост-процессора. Следовательно, для них важны высокая пропускная способность, малая задержка и возможность параллельной передачи данных между ведущими и ведомыми устройствами. Данные требования определили архитектуру устройства: периферийные устройства, внутренняя память и ядро процессора взаимодействуют между собой через эффективный коммутатор (switched central resource – SCR) процессора C6455.
Также важна оптимальная организация потока данных. Ее удалось улучшить за счет применения шин памяти с разрядностью 256 бит и внутреннего прямого доступа к памяти (internal direct memory access, IDMA). IDMA обеспечивает перемещение данных в фоновом режиме между двумя уровнями внутренней памяти, а также к шине периферийных устройств и обратно.
Большой объем внутрикристальной памяти. Внутрикристальная статическая оперативная память SRAM работает намного быстрее, чем динамическая внешняя память SDRAM, а ее объем намного меньше ввиду высокой стоимости изготовления. Для типовых приложений в области видео внутрикристальная память служит, главным образом, двум целям: 1) хранит часто используемые код и данные, 2) загружает/выгружает временные данные до и после обработки. Как правило, чем больше объем доступной внутрикристальной памяти, тем выше производительность приложения. В цифровом сигнальном процессоре C6455 размещено целых два мегабайта статической оперативной памяти.
Совместимость программного обеспечения (ПО). Обратная совместимость ПО важна, поскольку множество программ для видеоприложений было разработано задолго до широкого применения транскодирования. Чтобы использовать существующее ПО на новых процессорах, целесообразно повышать производительность DSP не путем изменения его набора команд, а за счет архитектуры ядра процессора. В процессоре C6455 реализованы два архитектурных новшества. Первое связано с введением циклического буфера, потенциально повышающего эффективность программной конвейеризации обработки кода с короткими циклами. Второе – применение 16-разрядных версий изначально 32-разрядных команд, что значительно уменьшает размер программного кода и, таким образом, снижает коэффициент "непопаданий" при обращениях к кэш-памяти.
Прототип системы транскодирования
Транскодирование необходимо также для передачи данных с DVD-дисков по IP-сети, например в обучающей системе компании, в приложениях видео по запросу и широковещательной трансляции видео. В этом случае исходным видеоформатом является MPEG2, а в качестве целевого формата используется в основном WMV9. Отметим, что возможность программирования цифровых сигнальных процессоров позволяет легко поддерживать практически любую комбинацию исходного/целевого видеоформата.
Для транскодирования видеоданных нужно решить множество технических вопросов, таких как преобразование формата, уменьшение битрейта видеопотока и его временного и пространственного разрешения. Поэтому были разработаны различные схемы интеллектуального транскодирования видеоданных. Их главный принцип – в максимально возможном повторном использовании информации, которая содержится во входном видеопотоке.
В данном разделе рассматривается прототип системы транскодирования видео, который пригоден для любых схем транскодирования благодаря использованию архитектуры, основанной на гибкой инфраструктуре аппаратного/программного обеспечения. Чтобы удовлетворить различным целевым сценариям транскодирования видео, выбрана простейшая схема транскодирования, в которой видеопоток полностью декодируется, а затем кодируется повторно в соответствии с новыми ограничениями.
Поток данных в системе начинается на левой стороне схемы (рис.2), со сжатого в формате MPEG2 видеофайла, который хранится на жестком диске, и заканчивается на плоскопанельном дисплее, где видео воспроизводится программой Windows Media Player. В этом демонстрационном варианте видео имеет стандартное разрешение NTSC (720 на 480 пикселов) и транскодируется со скоростью 30 кадров в секунду.
Модуль приемника потока, работающий на DSP1, буферизует поток MPEG2 и организует входные данные для модуля декодера MPEG2. Управление операцией приема данных производится с использованием библиотеки средств разработки сетей (Network Development Kit, NDK) компании TI, которая по существу представляет собой стек TCP/IP. Модуль формирователя пакетов ASF, работающий на процессоре DSP2, формирует пакеты в формате ASF из данных, сжатых в модуле WMV9. В DSP2 также присутствует http-сервер на базе NDK, который обрабатывает запросы на передачу потока от программы Windows Media Player и передает в нее пакеты ASF. Windows Media Player декодирует пакеты ASF и показывает видео на экране.
Одним из наиболее интересных и сложных аспектов передачи потока данных является взаимодействие двух цифровых сигнальных процессоров через интерфейс sRIO. При передаче каждого видеокадра происходит следующее. После того, как DSP1 завершит передачу видеокадра, он посылает пакет данных, который в спецификации протокола sRIO называется DOORBELL. Пакет DOORBELL генерирует системное прерывание в процессоре DSP2, уведомляющее о наличии кадра. В ответ DSP2 запускает процесс кодирования в формат WMV9. Завершив кодирование кадра, DSP2 посылает пакет DOORBELL процессору DSP1. При этом в DSP1 генерируется прерывание, чтобы сообщить о готовности процессора DSP1 продолжить передачу следующего кадра. На практике используется схема буферов с попеременным переключением, чтобы операции кодирования/декодирования и передачи данных выполнялись параллельно.
Блок графического пользовательского интерфейса (GUI) обеспечивает встроенные в систему функции управления и мониторинга. Активность канала связи sRIO и каналов связи Gigabit MAC (GMAC) отображается в реальном времени. При передаче по каналу связи потока данных MPEG-2 средняя скорость передачи составляет 8 Мбит/с, что характерно для кодирования при стандартном разрешении с частотой 30 кадров в секунду. При передаче по каналу связи пакетов ASF средняя скорость передачи составляет 4 Мбит/с. Это показывает, что формат WMV9 способен освободить приблизительно 50% полосы пропускания, обеспечивая сходное качество видео. Для канала связи с интерфейсом sRIO средняя скорость передачи данных составляет 124 Мбит/с.
Таким образом, возможности цифрового сигнального процессора C6455 компании TI в сочетании с интерфейсом sRIO, а также демонстрация описанного прототипа системы транскодирования на основе процессоров C6455 свидетельствуют, что сложная задача передачи видео в IP-сетях может быть успешно решена и в настоящее время, и в будущем.
Отзывы читателей