Русская Википедия:OpenMAX

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Файл:OpenMAX logo.svg
Логотип

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

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

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

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

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

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

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

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

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

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

OpenMAX AL (Application Layer)

Шаблон:Infobox software 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)

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

Версия 1.2

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

OpenMAX DL (Development Layer)

Шаблон:Infobox software

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.

См. также

Примечания

Шаблон:Примечания

Ссылки

Шаблон:Стандарты Khronos Group Шаблон:Стиль