OpenMAX (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
Логотип программы OpenMAX AL
Тип API
Разработчик Khronos Group, Inc.
Операционная система Cross-platform
Последняя версия 1.1 (18 Января 2011)
Сайт khronos.org/openmax

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
Разработчик Khronos Group, Inc.
Операционная система Cross-platform
Последняя версия 1.1.2 (Сентябрь 15, 2008)
Сайт khronos.org/openmax

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

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

OpenMAX DL (Development Layer)

[править | править код]
OpenMAX DL
Логотип программы OpenMAX DL
Тип API
Разработчик Khronos Group, Inc.
Операционная система Cross-platform
Последняя версия 1.0.2 (Декабрь 21, 2007)
Сайт khronos.org/openmax

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.

В 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. Maintenance. Дата обращения: 14 мая 2012. Архивировано 16 мая 2012 года.