stringtranslate.com

OpenMAX

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, без повторной оптимизации своего программного обеспечения низкого уровня.

Прикладной уровень

OpenMAX AL учитывает распространенные случаи использования мультимедийных приложений путем стандартизации набора репрезентативных объектов , а также интерфейсов этих объектов для их управления и настройки. API OpenMAX AL разделен на два профиля: медиаплеер и медиаплеер/рекордер. Платформа может соответствовать одному или обоим этим профилям, предоставляя все функции, включенные в профиль.

Это мультимедийный API уровня приложения на языке C , разработанный для устройств с ограниченными ресурсами. В конструкции API OpenMAX AL особое внимание уделяется обеспечению совместимости API с мобильными встроенными устройствами , включая базовые мобильные телефоны, интеллектуальные «функциональные» телефоны, КПК и мобильные цифровые музыкальные проигрыватели. Тем не менее, это не исключает его применимости к другим сложным устройствам воспроизведения и записи мультимедиа.

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

Функции

Возможности OpenMAX AL включают в себя:

Расширение цифрового телевидения

Спецификация расширения цифрового телевидения (DTV) OpenMAX AL добавляет независимую от стандартов настройку мобильного телевидения, воспроизведение, запись и электронную программу передач в OpenMAX AL Multimedia API в качестве модульного, бесплатного, кроссплатформенного API на языке C для высокопроизводительных производительность приложений, связанных с цифровым телевидением, на мобильных и встроенных устройствах. Расширение DTV совместимо со всеми основными стандартами мобильного телевидения (например, DVB-H, ISDB-T, T-DMB и т. д.) и поддерживает широковещательные, одноадресные и многоадресные методы доставки цифрового телевидения. [12] [13]

Версии спецификации

Реализации

Сравнение с OpenSL ES

OpenSL ES (Открытая звуковая библиотека для встраиваемых систем) — это еще один API Khronos Group, который также предоставляет аудиобиблиотеку для того же целевого рынка, что и OpenMAX AL, тогда как OpenMAX ориентирован на полные мультимедийные услуги. Аудиоподмножества OpenSL ES и OpenMAX AL имеют одну и ту же общую архитектуру и несколько общих функций:

Уровень интеграции

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]

Реализации

Слой разработки

API OpenMAX DL определяет набор низкоуровневых мультимедийных ядер или строительных блоков обработки мультимедиа. Строительные блоки могут использоваться для ускорения традиционных вычислительных точек в рамках стандартизированных медиакодеков и других интегрированных механизмов обработки мультимедиа. Функциональный объем интерфейса OpenMAX DL охватывает несколько областей, включая обработку сигналов и изображений , кодирование звука , кодирование изображений и кодирование видео .

OpenMAX DL разделен на пять областей приложений:

Реализации

Рабочая группа

Рабочая группа 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 .

Смотрите также

Рекомендации

  1. ^ http://www.cnx-software.com/2011/11/11/openmax-open-media-acceleration/ OpenMAX (ускорение открытых носителей)
  2. ^ https://events.linuxfoundation.org/images/stories/pdf/lceu2012_debski.pdf. Архивировано 6 января 2014 г. на Wayback Machine Video4Linux2 — путь к стандартизированному API видеокодека.
  3. ^ http://jan.newmarch.name/LinuxSound/Sampled/OpenMAX/. Архивировано 12 марта 2016 г. на Wayback Machine. Содержание полной книги «Linux Sound» - глава 13: OpenMAX/OpenSL.
  4. ^ http://www.khronos.org/openmax/ OpenMAX — стандарт переносимости медиабиблиотек (от Khronos Group)
  5. ^ «Группа Khronos объявляет о новом открытом стандарте OpenMAX для обеспечения эффективного ускорения мультимедиа» . 6 июля 2004 г.
  6. ^ https://www.khronos.org/files/openmax_il_spec_1_0.pdf [ пустой URL-адрес PDF ]
  7. ^ "Реестр Khronos OpenMAX IL - Khronos Group Inc" .
  8. ^ "Группа Хронос". 21 ноября 2021 г.
  9. ^ «Include/Media/Openmax/OMX_VideoExt.h — платформа/Frameworks/Native — Git в Google» .
  10. ^ http://elinux.org/images/e/e0/The_OpenMAX_Integration_Layer_standard.pdf Стандарт уровня интеграции OpenMAX.
  11. ^ http://elinux.org/images/5/52/Elc2011_garcia.pdf Интеграция аппаратного видеокодека в Android Stagefright с использованием OpenMAX IL
  12. ^ http://www.khronos.org/openmax/al/dtv/ OpenMAX AL — расширение цифрового телевидения (DTV)
  13. ^ https://www.khronos.org/news/press/khronos-group-releases-provisional-openmax-al-digital-tv-extension-special Khronos Group выпускает предварительную спецификацию расширения цифрового телевидения OpenMAX AL
  14. ^ Khronos Group выпускает спецификацию OpenMAX AL для обработки видео, аудио и изображений на уровне приложений на мобильных и портативных устройствах. Архивировано 17 марта 2011 г. на Wayback Machine , пресс-релиз Khronos.
  15. ^ "Сэндвич с мороженым".
  16. ^ https://www.khronos.org/registry/OpenMAX-IL/specs/OpenMAX_IL_1_2_0_Specification.pdf [ пустой URL-адрес PDF ]
  17. ^ «Анонсирование Tizonia OpenMAX IL» .
  18. ^ «Стандарт уровня интеграции OpenMAX» (PDF) .
  19. ^ Кениг, Кристиан (24 октября 2013 г.). «Трекер состояния OpenMAX». mesa-dev (список рассылки) . Проверено 28 ноября 2015 г.
  20. ^ «Добавьте трекер состояния OpenMAX в Mesa/Gallium, который использует Tizonia» .
  21. ^ "Стандарты Хроноса - ARM" . 12 сентября 2022 г. Архивировано из оригинала 04 октября 2013 г.
  22. ^ «Использование оптимизированных NEON библиотек» . 12 сентября 2022 г.
  23. ^ «VideoToolbox — Документация разработчика Apple» . разработчик.apple.com . Проверено 05 августа 2018 г.
  24. ^ «Архивная копия» (PDF) . Архивировано из оригинала (PDF) 9 апреля 2011 г. Проверено 16 января 2012 г.{{cite web}}: CS1 maint: архивная копия в заголовке ( ссылка )API декодирования OpenVideo (OVD)

Внешние ссылки