Interested Article - OpenMAX

Логотип

OpenMAX ( Open Media Acceleration ) — бесплатный кроссплатформенный API , который представляет собой набор средств для ускорения воспроизведения потокового видео и работы с различными мультимедийными системами, разработанный для использования независимо от ОС или аппаратной платформы.

OpenMAX позволяет процессорам быстро и эффективно работать с кодеками и библиотеками обработки мультимедиа, раскрывая весь их потенциал, независимо от базовой аппаратной архитектуры.

Предпосылки к разработке

Развитие мультимедийных платформ набирает обороты, соответственно растут и требования пользователей к функциональности приложений работающих с видео, аудио, голосом и 3D на мобильных платформах, таких как смартфоны, аудио и видео плееры или игровые консоли . В наши дни для мобильных платформ требуется увеличение вычислительной мощности и пропускной способности памяти. Есть множество решений, предназначенных для ускорения мультимедийных приложений, например:

  • Процессоры общего назначения со специфическими мультимедийными расширениями
  • Низкоуровневые аппаратные ускорители,
  • Многопроцессорные архитектуры, включающие DSP ( Digital signal processor )
  • Выделенныe аппаратные видео декодеры

Ключевой проблемой всех этих аппаратных решений является создание эффективного программного кода. Даже используя современные компиляторы редко удается раскрыть весь потенциал процессорной архитектуры используя высокоуровневые программные языки . В результате многие программы пишут на языке assembler , и они предназначены для использование только на конкретной аппаратной платформе. С появлением нового оборудования данные приложения должны быть переписаны и оптимизированы под новую платформу.Это сильно задерживает выход новых продуктов, увеличивает затраты на разработку, и ухудшает качество конечного продукта, в то время как спрос на рынке постоянно растет.

Разработка открытого стандарта

Чтобы решить эту проблему, компанией Khronos была сформирована группа OpenMAX. Их задачей было определение набора стандартов и открытых интерфейсов прикладного программирования ( API ) для мультимедийных приложений. Целью этого стандарта является снижение стоимости и сложности портирования мультимедийного программного обеспечения для новых процессоров и архитектур.

Используя данную спецификацию для промежуточных ( middleware ) приложений, таких как мультимедийные кодеки, графические библиотеки и другие инструменты обработки звука и изображения, разработчики смогут сосредоточиться на разделении своих продуктов, а не просто повторять общую функциональность. Это гарантирует то, что новые продукты появятся на рынке раньше, и будут поддерживать широкий спектр аппаратных платформ.

Архитектура OpenMAX включает в себя три слоя: AL, IL и DL.

OpenMAX AL (Application Layer)

OpenMAX AL (Application Layer) обеспечивает переносимость приложений между операционными системами и аппаратными платформами за счет исчерпывающего API, представляющего на высоком уровне абстракции доступ к функциональности, связанной с аудиовизуальными средствами.

В частности, OpenMAX AL дает возможность создавать объекты для воспроизведения и записи и управлять ими, связывать их с конфигурируемыми объектами ввода и вывода. Объекты ввода-вывода включают устройства для чтения и записи, наушники, громкоговорители, микрофоны, окна на экране, камеры, сенсорные панели, радио, светодиоды и многие другие устройства. Важно, что предусмотрена работа как в системах с аппаратными ускорителями, так и на чисто программных реализациях.

В разработке OpenMAX AL приняли участие эксперты в области фотографии, записи и воспроизведения звука и видео. В числе разработчиков OpenMAX AL 1.1 фигурируют компании AMD , Creative , Ericsson , Google , Nokia , NVIDIA , Qualcomm и SRS .

OpenMAX IL (Integration Layer)

OpenMAX IL
Логотип программы OpenMAX IL
Тип API
Разработчик
Операционная система Cross-platform
Последняя версия 1.1.2 (Сентябрь 15, 2008)
Сайт

OpenMAX IL служит низкоуровневым интерфейсом для аудио и видео кодеков, используемых в мобильных устройствах. Это дает возможность приложениям и медиаструктурам напрямую взаимодействовать с кодеками и поддерживать их компоненты. Кодеки сами по себе могут быть любой комбинацией аппаратного и программного обеспечения и являются полностью невидимыми для пользователя. Без стандартизированного интерфейса такого рода, производители кодеков должны писать собственные или закрытые интерфейсы для интеграции в мобильные устройства. Основная цель IL — сделать кодеки переносимыми и совместимыми с любой медиасистемой.

Версия 1.2

14 февраля 2012 года, Kronos Group версию 1.2. Была обнародована предварительная спецификация. .

OpenMAX DL (Development Layer)

OpenMAX DL
Логотип программы OpenMAX DL
Тип API
Разработчик
Операционная система Cross-platform
Последняя версия 1.0.2 (Декабрь 21, 2007)
Сайт

OpenMAX DL это API, который содержит полный набор функций для работы с аудио, видео и изображениями, которые могут быть реализованы и оптимизированы на новых процессорах, а затем использоваться производителями кодеков. Он включает в себя функции обработки аудио сигналов, такие как FFT фильтры, примитивы обработки изображений, такие как преобразование цвета, и примитивы обработки видео для реализации и оптимизации таких кодеков, как MPEG-4, H.264, MP3, AAC и JPEG. OpenMAX также поддерживает параллельное ускорение, как через iDL, который использует конструкции OpenMAX IL, так и через aDL, который добавляет асинхронные интерфейсы в OpenMAX DL API.

Группа разработчиков OpenMAX

Группа разработчиков OpenMAX была создана вместе с группой OpenVG — 6 июля 2004 года. Спонсорами проекта (2008-01-17) являются AMD , Apple , ARM , Creative , Dell Inc , Ericsson , Freescale , Imagination Technologies Group Plc, Intel , IBM , Motorola , Nokia , NVIDIA Corporation , Samsung Electronics Co Ltd , SK Telecom , Sony Computer Entertainment Inc , Sun Microsystems Inc и Texas Instruments .

OpenMAX в Android

В Android NDK r7 (Ноябрь 2011) было добавлено два новых API:

  • OpenMAX AL 1.0.1 позволяет приложениям производить вывод мультимедиа непосредственно с исходного кода, используя буфер очереди Android интерфейса. Библиотеки находятся в каталогах <OMXAL/OpenMAXAL.h> и <OMXAL/OpenMAXAL_Android.h>.
  • OpenSL ES 1.0.1 позволяет декодировать сжатое аудио (MP3, AAC, Vorbis) в PCM.

См. также

Примечания

  1. . Дата обращения: 14 мая 2012. 16 мая 2012 года.

Ссылки

  • 19 августа 2013 года. - Патчноут Android 4.0 NDK.
  • от 5 мая 2011 на Wayback Machine - Информация о OpenMax на официальном сайте Kronos Group.
  • - новость о выходе OpenMAX AL 1.1.
  • (недоступная ссылка) . (OpenMAX AL 1.0.1,OpenSL ES)
  • - Анонс OpenMAX IL 1.2
Источник —

Same as OpenMAX