OpenMAX
![]() | |
Разработчик(и) | Хронос Групп |
---|---|
Веб-сайт | www |
OpenMAX (Open Media Acceleration), часто сокращенно « OMX », представляет собой непатентованный и бесплатный кроссплатформенный набор на языке C. интерфейсов программирования Он предоставляет абстракции для процедур, которые особенно полезны для обработки аудио, видео и неподвижных изображений. [1] [2] Он предназначен для маломощных и встроенных системных устройств (включая смартфоны , игровые консоли , цифровые медиаплееры и телеприставки ), которым необходимо эффективно обрабатывать большие объемы мультимедийных данных предсказуемыми способами, таких как видеокодеки, графические библиотеки и другие функции для видео, изображения, звука, голоса и речи. [3]
OpenMAX предоставляет три уровня интерфейсов: уровень приложения (AL), уровень интеграции (IL) и уровень разработки (DL). OpenMAX управляется некоммерческим технологическим консорциумом Khronos Group . [4]
История
[ редактировать ]Первоначально анонсировано в июле 2004 года. [5] Рабочая группа OpenMAX была первоначально основана членами ARM , Motorola , Samsung , STMicroelectronics и Texas Instruments . Версия 1.0 спецификации была опубликована в декабре 2005 года. [6] Последний проект, созданный рабочей группой OpenMAX (1.2.0), датирован 2011 годом. [7] и с 2012 года ни один продукт не был объявлен соответствующим. [8] Спецификация OpenMAX никогда не обновлялась для поддержки последних кодеков, таких как HEVC или VP9, что делает Android де-факто источником обновлений стандарта OpenMAX IL. [9]
Слои
[ редактировать ]OpenMAX AL — это интерфейс между мультимедийными приложениями, такими как медиаплеер, и медиа-инфраструктурой платформы . Это позволяет компаниям, разрабатывающим приложения, легко переносить свои приложения на разные платформы (клиентов), поддерживающие интерфейс прикладного программирования (API) OpenMAX AL. [10]
OpenMAX IL — это интерфейс между медиа-инфраструктурой (например, StageFright или MediaCodec API в Android, DirectShow в Windows, FFmpeg или GStreamer в Linux) и набором мультимедийных компонентов (таких как аудио- или видеокодеки ) . Это позволяет компаниям, создающим платформы (например, позволяющим реализовать MP3-плеер), легко заменять такие компоненты, как декодеры MP3 и эффекты эквалайзера, и покупать компоненты для своей платформы у разных поставщиков. [11]
OpenMAX DL — это интерфейс между физическим оборудованием, таким как цифровых сигнальных процессоров чипы процессорами (DSP), центральными и графическими , и программным обеспечением, таким как видеокодеки и 3D-движки. Это позволяет компаниям легко интегрировать новое оборудование, поддерживающее OpenMAX DL, без повторной оптимизации своего программного обеспечения низкого уровня.
Прикладной уровень
[ редактировать ]![]() | |
Разработчик(и) | Хронос Групп |
---|---|
Стабильная версия | 1.1 / 18 января 2011 г |
Операционная система | Кросс-платформенный |
Тип | API |
Лицензия | Различный |
Веб-сайт | www ![]() |
OpenMAX AL учитывает распространенные случаи использования мультимедийных приложений путем стандартизации набора репрезентативных объектов , а также интерфейсов этих объектов для их управления и настройки. API OpenMAX AL разделен на два профиля: медиаплеер и медиаплеер/рекордер. Платформа может соответствовать одному или обоим этим профилям, предоставляя все функции, включенные в профиль.
Это мультимедийный API уровня приложения на языке C , разработанный для устройств с ограниченными ресурсами. В конструкции API OpenMAX AL особое внимание уделяется обеспечению совместимости API с мобильными встроенными устройствами , включая базовые мобильные телефоны, интеллектуальные «функциональные» телефоны, КПК и мобильные цифровые музыкальные проигрыватели. Тем не менее, это не исключает его применимости к другим сложным устройствам воспроизведения и записи мультимедиа.
В конструкции API OpenMAX AL особое внимание уделяется удобству для разработчиков приложений. Его статус открытого кроссплатформенного API позволяет разработчикам переносить один и тот же источник на несколько устройств с минимальными усилиями. Таким образом, OpenMAX AL обеспечивает стабильную основу для разработки приложений.
Функции
[ редактировать ]Возможности OpenMAX AL включают в себя:
- Воспроизведение и запись видео
- Воспроизведение и запись звука
- Захват изображения (камера) и отображение
- Управление камерой
- Радио и РДС
- Базовое MIDI воспроизведение
- Извлечение и вставка метаданных
Расширение цифрового телевидения
[ редактировать ]Спецификация расширения цифрового телевидения (DTV) OpenMAX AL добавляет не зависящую от стандартов функциональность мобильного телевидения по настройке, воспроизведению, записи и электронной программе передач в OpenMAX AL Multimedia API в качестве модульного бесплатного кроссплатформенного API на языке C для высокопроизводительных производительность приложений, связанных с цифровым телевидением, на мобильных и встроенных устройствах. Расширение DTV совместимо со всеми основными стандартами мобильного телевидения (например, DVB-H, ISDB-T, T-DMB и т. д.) и поддерживает широковещательные, одноадресные и многоадресные методы доставки цифрового телевидения. [12] [13]
Версии спецификации
[ редактировать ]- Предварительная спецификация OpenMAX AL 1.0 — предварительная версия, датированная 2 сентября 2007 г., для облегчения обратной связи с сообществом перед выпуском окончательной версии 1.0.
- Спецификация OpenMAX AL 1.0 — от 23 июня 2009 г.
- Спецификация OpenMAX AL 1.0.1 — от 12 марта 2010 г.
- Спецификация OpenMAX AL 1.1 — от 18 января 2011 г. [14]
Реализации
[ редактировать ]- Android 4.0 и более поздних версий предоставляет OpenMAX AL как часть своего NDK (Native Development Kit) . [15]
- LIM OpenMAX — это реализация OpenMAX AL и OpenMAX IL с открытым исходным кодом для Linux.
Сравнение с OpenSL ES
[ редактировать ]OpenSL ES (Открытая звуковая библиотека для встраиваемых систем) — это еще один API Khronos Group, который также предоставляет аудиобиблиотеку для того же целевого рынка, что и OpenMAX AL, тогда как OpenMAX ориентирован на полные мультимедийные услуги. Аудиоподмножества OpenSL ES и OpenMAX AL имеют одну и ту же общую архитектуру и несколько общих функций:
- Воспроизведение и запись звука
- Базовое воспроизведение MIDI
- Извлечение метаданных
Уровень интеграции
[ редактировать ]![]() | |
Разработчик(и) | Хронос Групп |
---|---|
Стабильная версия | 1.1.2 / 15 сентября 2008 г |
Предварительный выпуск | 1.2.0 / 7 ноября 2011 г |
Операционная система | Кросс-платформенный |
Тип | API |
Лицензия | Различный |
Веб-сайт | www ![]() |
API OpenMAX IL стремится обеспечить переносимость мультимедийных компонентов на множество платформ с использованием C. языка В OpenMAX IL компоненты представляют собой отдельные блоки функциональности. Компонентами могут быть источники, приемники, кодеки, фильтры, разделители, микшеры или любой другой оператор данных. В зависимости от реализации компонент может представлять собой аппаратное обеспечение, программный кодек, другой процессор или их комбинацию.
Интерфейс абстрагирует аппаратную и программную архитектуру системы. API OpenMAX IL позволяет пользователю загружать, контролировать, подключать и выгружать отдельные компоненты. Эта гибкая базовая архитектура позволяет уровню интеграции легко реализовать практически любой вариант использования мультимедиа и взаимодействовать с существующими медиа-фреймворками на основе графов. Ключевым моментом OpenMAX IL API является переносимость медиа-компонентов.
В конструкции OpenMAX IL API особое внимание уделяется гибкости вариантов использования и оптимизации передачи данных между компонентами.
API OpenMAX IL был выбран в качестве основы для API для интеграции аудио- и видеокодеков в Android, в результате чего большинство поставщиков SoC поставляют минимальную реализацию, которая поддерживает только подмножество, необходимое для Android. Приложения не используют эти компоненты OpenMAX IL напрямую, а только через Android MediaCodec API. Подмножество OpenMAX IL для Android с его расширениями теперь является стандартом де-факто.
В 2011 году была выпущена предварительная версия 1.2.0. [16]
Реализации
[ редактировать ]- Tizonia — это реализация OpenMAX IL с открытым исходным кодом для Linux, поддерживающая версию 1.2.0. [17]
- Bellagio — это реализация OpenMAX IL с открытым исходным кодом для Linux, поддерживаемая STMicroelectronics . [18]
- LIM OpenMAX — это реализация OpenMAX AL и OpenMAX IL с открытым исходным кодом для Linux.
- Mesa предоставляет драйверы с аппаратным ускорением, которые можно использовать с Bellagio или Tizonia. [19] [20]
- Android StageFright — частичная реализация IL, которая является стандартом де-факто.
Слой разработки
[ редактировать ]![]() | |
Разработчик(и) | Хронос Групп |
---|---|
Стабильная версия | 1.0.2 / 21 декабря 2007 г |
Операционная система | Кросс-платформенный |
Тип | API |
Лицензия | Различный |
Веб-сайт | www ![]() |
API OpenMAX DL определяет набор низкоуровневых мультимедийных ядер или строительных блоков обработки мультимедиа. Строительные блоки могут использоваться для ускорения традиционных вычислительных точек в рамках стандартизированных медиакодеков и других интегрированных механизмов обработки мультимедиа. Функциональный объем интерфейса OpenMAX DL охватывает несколько областей, включая обработку сигналов и изображений , кодирование звука , кодирование изображений и кодирование видео .
OpenMAX DL разделен на пять областей приложений:
- AC — аудиокодеки (компоненты декодера MP3 и декодера AAC)
- IC — кодеки изображений (компоненты JPEG)
- IP — обработка изображений (общие функции обработки изображений)
- SP — Обработка сигнала (общие функции обработки звука)
- VC — видеокодеки (компоненты H.264 и MP4)
Реализации
[ редактировать ]- Оптимизированные реализации для NEON (для ядер Cortex A8 ) и SIMD (для ядер ARM11 ), а также эталонная реализация ANSI C ранее были доступны в ARM для зарегистрированных пользователей. [21] [22]
- API OpenMAX поддерживается консолью PlayStation 3 . [ нужна ссылка ]
Рабочая группа
[ редактировать ]Рабочая группа OpenMAX была основана вместе с дочерним проектом OpenVG 6 июля 2004 года. В 2008 году ее участниками были 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 и Texas Instruments .
См. также
[ редактировать ]- API ускорения видео (VA API)
- VDPAU (API декодирования и представления видео для Unix)
- Ускорение битового потока X-Video (XvBA)
- Компенсация движения X-Video (XvMC)
- API DirectX Video Acceleration (DxVA) — Microsoft Windows аналог
- Distributed Codec Engine (libdce) — это API Texas Instruments для механизма видеокодеков во OMAP . встроенных системах на базе
- VideoToolbox — это API от Apple Inc. для аппаратного ускорения декодирования на Apple TV и Mac OS X. [23]
- OpenVideo Decode (OVD) — новый открытый кроссплатформенный API-интерфейс ускорения видео от AMD . [24]
- Nvidia PureVideo — технология битового потока от NVIDIA, используемая в их графических чипах для ускорения декодирования видео на аппаратном графическом процессоре .
- UVD (Unified Video Decoder) — технология битового потока от ATI Technologies, используемая в их графических чипах для ускорения декодирования видео на аппаратном графическом процессоре .
Ссылки
[ редактировать ]- ^ http://www.cnx-software.com/2011/11/11/openmax-open-media-acceleration/ OpenMAX (ускорение открытых носителей)
- ^ https://events.linuxfoundation.org/images/stories/pdf/lceu2012_debski.pdf. Архивировано 6 января 2014 г. на Wayback Machine Video4Linux2 — путь к стандартизированному API видеокодека.
- ^ http://jan.newmarch.name/LinuxSound/Sampled/OpenMAX/. Архивировано 12 марта 2016 г. на Wayback Machine. Содержание полной книги «Linux Sound» - глава 13: OpenMAX/OpenSL.
- ^ http://www.khronos.org/openmax/ OpenMAX — стандарт переносимости медиабиблиотек (от Khronos Group)
- ^ «Khronos Group объявляет о новом открытом стандарте OpenMAX для обеспечения эффективного ускорения мультимедиа» . 6 июля 2004 г.
- ^ https://www.khronos.org/files/openmax_il_spec_1_0.pdf [ пустой URL PDF ]
- ^ «Реестр Khronos OpenMAX IL — Khronos Group Inc» .
- ^ «Группа Хронос» . 21 ноября 2021 г.
- ^ «Include/Media/Openmax/OMX_VideoExt.h — платформа/Frameworks/Native — Git в Google» .
- ^ http://elinux.org/images/e/e0/The_OpenMAX_Integration_Layer_standard.pdf Стандарт уровня интеграции OpenMAX.
- ^ http://elinux.org/images/5/52/Elc2011_garcia.pdf Интеграция аппаратного видеокодека в Android Stagefright с использованием OpenMAX IL
- ^ http://www.khronos.org/openmax/al/dtv/ OpenMAX AL — расширение цифрового телевидения (DTV)
- ^ https://www.khronos.org/news/press/khronos-group-releases-provisional-openmax-al-digital-tv-extension-species Khronos Group выпускает предварительную спецификацию расширения цифрового телевидения OpenMAX AL
- ^ Khronos Group выпускает спецификацию OpenMAX AL для обработки видео, аудио и изображений на уровне приложений на мобильных и портативных устройствах. Архивировано 17 марта 2011 г. на Wayback Machine , пресс-релиз Khronos.
- ^ «Сэндвич с мороженым» .
- ^ https://www.khronos.org/registry/OpenMAX-IL/specs/OpenMAX_IL_1_2_0_Specification.pdf . [ пустой URL PDF ]
- ^ «Анонсируем Tizonia OpenMAX IL» .
- ^ «Стандарт уровня интеграции OpenMAX» (PDF) .
- ^ Кениг, Кристиан (24 октября 2013 г.). «Трекер состояния OpenMAX» . mesa-dev (список рассылки) . Проверено 28 ноября 2015 г.
- ^ «Добавьте трекер состояния OpenMAX в Mesa/Gallium, который использует Tizonia» .
- ^ «Хронос Стандарты-АРМ» . 12 сентября 2022 г. Архивировано из оригинала 04 октября 2013 г.
- ^ «Использование оптимизированных NEON библиотек» . 12 сентября 2022 г.
- ^ «VideoToolbox — Документация разработчика Apple» . разработчик.apple.com . Проверено 05 августа 2018 г.
- ^ «Архивная копия» (PDF) . Архивировано из оригинала (PDF) 9 апреля 2011 г. Проверено 16 января 2012 г.
{{cite web}}
: CS1 maint: архивная копия как заголовок ( ссылка ) API OpenVideo Decode (OVD)
Внешние ссылки
[ редактировать ]- Khronos Group — Обзор OpenMAX и спецификации API
- Khronos Group — Публичный реестр API
- Khronos Group — Спецификация OpenMAX AL 1.1
- Khronos Group — Спецификация OpenMAX IL 1.1.2
- Khronos Group — Спецификация OpenMAX DL 1.0.2
- ARM — Бесплатная библиотека OpenMAX
- Mentor Graphics — Nucleus MMF использует OpenMAX IL
- Mentor Graphics — пресс-релиз, Mentor впервые в отрасли достигает соответствия OpenMAX для мультимедийной платформы Nuclues OS