OpenMAX (Open Media Acceleration), a menudo abreviado como " OMX ", es un conjunto multiplataforma no propietario y libre de regalías de interfaces de programación en lenguaje C. Proporciona abstracciones para rutinas que son especialmente útiles para el procesamiento de audio, video e imágenes fijas. [1] [2] Está diseñado para dispositivos de sistemas integrados y de bajo consumo (incluidos teléfonos inteligentes , consolas de juegos , reproductores de medios digitales y decodificadores ) que necesitan procesar de manera eficiente grandes cantidades de datos multimedia de formas predecibles, como video códecs, bibliotecas de gráficos y otras funciones para video, imagen, audio, voz y habla. [3]
![]() | |
Desarrollador (es) | Grupo Khronos |
---|---|
Sitio web | www |
OpenMAX proporciona tres capas de interfaces: capa de aplicación (AL), capa de integración (IL) y capa de desarrollo (DL). OpenMAX es administrado por el consorcio tecnológico sin fines de lucro Khronos Group . [4]
Historia
Anunciado inicialmente en julio de 2004. [5] El Grupo de Trabajo OpenMAX fue fundado inicialmente por miembros ARM , Motorola , Samsung , STMicroelectronics y Texas Instruments . La versión 1.0 de la especificación se publicó en diciembre de 2005. [6] El último borrador elaborado por el Grupo de Trabajo OpenMAX (1.2.0) data de 2011 [7] y ningún producto ha sido declarado conforme desde 2012. [8] OpenMAX Las especificaciones nunca se actualizaron para admitir códecs recientes como HEVC o VP9, lo que convierte a Android en la fuente de facto de actualizaciones del estándar OpenMAX IL. [9]
Capas
OpenMAX AL es la interfaz entre las aplicaciones multimedia, como un reproductor multimedia, y el marco de la plataforma multimedia . Permite a las empresas que desarrollan aplicaciones migrar fácilmente sus aplicaciones a diferentes plataformas (clientes) que admiten la interfaz de programación de aplicaciones (API) OpenMAX AL . [10]
OpenMAX IL es la interfaz entre el marco de medios (como StageFright o MediaCodec API en Android, DirectShow en Windows, FFmpeg o Libav en Linux, o GStreamer para multiplataforma) y un conjunto de componentes multimedia (como audio o video códecs ). Permite a las empresas que crean plataformas (por ejemplo, permitir la implementación de un reproductor MP3) cambiar fácilmente componentes como decodificadores MP3 y efectos de ecualizador y comprar componentes para su plataforma de diferentes proveedores. [11]
OpenMAX DL es la interfaz entre hardware físico, como chips de procesador de señal digital (DSP), CPU , GPU y software, como códecs de vídeo y motores 3D. Permite a las empresas integrar fácilmente nuevo hardware que admita OpenMAX DL sin volver a optimizar su software de bajo nivel.
Capa de aplicación
![]() | |
Desarrollador (es) | Grupo Khronos |
---|---|
Lanzamiento estable | 1.1 / 18 de enero de 2011 |
Sistema operativo | Multiplataforma |
Tipo | API |
Licencia | Varios |
Sitio web | www ![]() |
OpenMAX AL se adapta a casos de uso de aplicaciones multimedia comunes al estandarizar un conjunto de objetos representativos , así como interfaces en esos objetos, para controlarlos y configurarlos. La API OpenMAX AL se divide en dos perfiles: Media Player y Media Player / Recorder. Una plataforma puede ser compatible con uno o ambos de estos perfiles proporcionando todas las funciones incluidas en un perfil.
Es una API multimedia de nivel de aplicación, lenguaje C , diseñada para dispositivos con recursos limitados. El diseño de la API OpenMAX AL pone especial énfasis en garantizar que la API sea adecuada para dispositivos móviles integrados , incluidos teléfonos móviles básicos, teléfonos inteligentes con "funciones", PDA y reproductores de música digitales móviles. Sin embargo, esto no excluye su aplicabilidad a otros dispositivos sofisticados de reproducción y grabación de medios.
El diseño de la API OpenMAX AL dedica especial atención a la facilidad de uso del desarrollador de aplicaciones. Su estado como una API multiplataforma abierta permite a los desarrolladores migrar la misma fuente a varios dispositivos con un esfuerzo mínimo. Por lo tanto, OpenMAX AL proporciona una base estable para el desarrollo de aplicaciones.
Características
Las características de OpenMAX AL incluyen:
- Reproducción y grabación de video
- Reproducción y grabación de audio
- Captura de imágenes (cámara) y visualización
- Controles de la cámara
- Radio y RDS
- Reproducción MIDI básica
- Extracción e inserción de metadatos
Extensión de TV digital
Una especificación de extensión de televisión digital (DTV) de OpenMAX AL agrega funciones de sintonización, reproducción, grabación y guía electrónica de programas de TV móvil independientes de los estándares a OpenMAX AL Multimedia API, como una API modular de lenguaje C multiplataforma libre de regalías para alta rendimiento de aplicaciones relacionadas con la televisión digital en dispositivos móviles e integrados. DTV Extension es compatible con todos los principales estándares de TV móvil (por ejemplo, DVB-H, ISDB-T, T-DMB, etc.) y admite métodos de transmisión de transmisión, unidifusión y multidifusión para TV digital. [12] [13]
Versiones de especificación
- OpenMAX AL 1.0 Provisional Specification: una versión provisional, con fecha de 2007-09-02, para facilitar los comentarios de la comunidad antes de la versión 1.0 final.
- Especificación OpenMAX AL 1.0 - fechada 2009-06-23
- Especificación OpenMAX AL 1.0.1 - fechada 2010-03-12
- Especificación OpenMAX AL 1.1 - con fecha 2011-01-18 [14]
Implementaciones
- Android 4.0 y posterior expone OpenMAX AL como parte de su NDK (Kit de desarrollo nativo) . [15]
- LIM OpenMAX es una implementación de código abierto de OpenMAX AL y OpenMAX IL para Linux
- Bellagio es una implementación OpenMAX IL de código abierto para Linux mantenida por STMicroelectronics . [dieciséis]
- Tizonia es una implementación OpenMAX IL de código abierto para Linux [17]
- GStreamer (GST) es un marco multimedia de código abierto utilizado por varias aplicaciones. Puede utilizar módulos OpenMAX IL con su módulo " gst-omx ". [18]
- Solo C, optimizado para NEON (Cortex A8) y SIMD (para núcleos ARM11 con arquitectura ARMv6), las bibliotecas OpenMAX DL optimizadas están disponibles en [1] [19]
Comparación con OpenSL ES
OpenSL ES (Open Sound Library for Embedded Systems) es otra API de Khronos Group que también proporciona una biblioteca de audio para el mismo mercado objetivo que OpenMAX AL, mientras que OpenMAX tiene como objetivo los servicios multimedia completos. El subconjunto de audio OpenSL ES y OpenMAX AL comparten la misma arquitectura común y tienen algunas características comunes:
- Reproducción y grabación de audio
- Reproducción MIDI básica
- Extracción de metadatos
Capa de integración
![]() | |
Desarrollador (es) | Grupo Khronos |
---|---|
Lanzamiento estable | 1.1.2 / 15 de septiembre de 2008 |
Versión de vista previa | 1.2.0 / 7 de noviembre de 2011 |
Sistema operativo | Multiplataforma |
Tipo | API |
Licencia | Varios |
Sitio web | www .khronos .org / openmax / ![]() |
El API OpenMAX IL esfuerza por dar a los medios de comunicación componentes portabilidad a través de una serie de plataformas utilizando el lenguaje C . En OpenMAX IL, los componentes representan bloques individuales de funcionalidad. Los componentes pueden ser fuentes, sumideros, códecs, filtros, divisores, mezcladores o cualquier otro operador de datos. Dependiendo de la implementación, un componente posiblemente podría representar una pieza de hardware, un códec de software, otro procesador o una combinación de los mismos.
La interfaz abstrae la arquitectura de hardware y software del sistema. La API OpenMAX IL permite al usuario cargar, controlar, conectar y descargar los componentes individuales. Esta arquitectura central flexible permite que la capa de integración implemente fácilmente casi cualquier caso de uso de medios y se adapte a los marcos de medios existentes basados en gráficos. El enfoque clave de la API OpenMAX IL es la portabilidad de los componentes multimedia.
El diseño de la API de OpenMAX IL dedica especial atención a la flexibilidad de los casos de uso y las transferencias de datos optimizadas entre componentes.
La API OpenMAX IL ha sido elegida como base para la API para integrar códecs de audio y video en Android, esto da como resultado que la mayoría de los proveedores de SoC envíen una implementación mínima que solo admite el subconjunto requerido por Android. Las aplicaciones no utilizan esos componentes de OpenMAX IL directamente, sino solo a través de la API de Android MediaCodec. El subconjunto de Android de OpenMAX IL con sus extensiones es ahora el estándar de facto.
En 2011 se lanzó la versión provisional 1.2.0. [20]
Las implementaciones de OpenMAX IL de código abierto están disponibles,
- Bellagio , es mantenido por STMicroelectronics.
- LIM OpenMAX , una implementación que tiene tanto AL como IL.
- Android StageFright , una implementación parcial de IL que es el estándar de facto.
Capa de desarrollo
![]() | |
Desarrollador (es) | Grupo Khronos |
---|---|
Lanzamiento estable | 1.0.2 / 21 de diciembre de 2007 |
Sistema operativo | Multiplataforma |
Tipo | API |
Licencia | Varios |
Sitio web | www .khronos .org / openmax / ![]() |
La API OpenMAX DL define un conjunto de núcleos multimedia de bajo nivel o bloques de construcción de procesamiento de medios. Los bloques de construcción podrían usarse para acelerar los puntos de acceso computacionales tradicionales dentro de los códecs de medios estandarizados y otros motores de procesamiento de medios integrados. El alcance funcional de la interfaz OpenMAX DL abarca varios dominios, incluido el procesamiento de señales y procesamiento de imágenes , codificación de audio , codificación de imágenes y codificación de video .
OpenMAX DL se divide en cinco dominios de aplicación:
- AC - Códecs de audio (decodificador MP3 y componentes decodificadores AAC)
- IC - Códecs de imagen (componentes JPEG)
- IP: procesamiento de imágenes (funciones genéricas de procesamiento de imágenes)
- SP: procesamiento de señales (funciones genéricas de procesamiento de audio)
- VC - Códecs de video (componentes H.264 y MP4)
OpenMAX DL es, entre otras empresas, openmax_armlibraries implementadas por ARM y el código de muestra ANSI C se puede descargar desde su página web.
La API de OpenMAX es compatible con la consola PlayStation 3 .
Grupo de trabajo
El grupo de trabajo OpenMAX se fundó junto con el proyecto hermano OpenVG el 6 de julio de 2004. Los miembros promotores en 2008 fueron 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 y Texas Instruments .
Ver también
- API de aceleración de video (API VA)
- VDPAU (API de presentación y decodificación de video para Unix)
- Aceleración de flujo de bits de X-Video (XvBA)
- Compensación de movimiento de X-Video (XvMC)
- API DirectX Video Acceleration (DxVA) - Microsoft Windows analógico
- Distributed Codec Engine (libdce) es una API de Texas Instruments para el motor de códec de video en sistemas embebidos basados en OMAP
- VideoToolbox es una API de Apple Inc. para su descodificación acelerada por hardware en Apple TV y Mac OS X . [21]
- OpenVideo Decode (OVD) : una nueva API abierta de aceleración de video multiplataforma de AMD . [22]
- Nvidia PureVideo : la tecnología de flujo de bits de NVIDIA utilizada en sus chips gráficos para acelerar la decodificación de video en la GPU de hardware .
- UVD (Decodificador de video unificado) : la tecnología de flujo de bits de ATI Technologies utilizada en sus chips gráficos para acelerar la decodificación de video en la GPU de hardware .
Referencias
- ^ http://www.cnx-software.com/2011/11/11/openmax-open-media-acceleration/ OpenMAX (Aceleración de medios abiertos)
- ^ https://events.linuxfoundation.org/images/stories/pdf/lceu2012_debski.pdf Archivado 2014-01-06 en Wayback Machine Video4Linux2 - Path to a Standardized Video Codec API
- ^ http://jan.newmarch.name/LinuxSound/Sampled/OpenMAX/ Archivado el 12 de marzo de 2016 en Wayback Machine Contenido del libro completo "Linux Sound" - Capítulo 13: OpenMAX / OpenSL
- ^ http://www.khronos.org/openmax/ OpenMAX - El estándar para la portabilidad de la biblioteca de medios (por Khronos Group)
- ^ https://www.khronos.org/news/press/khronos-group-announces-new-openmax-open-standard-for-enabling-effective-me
- ^ https://www.khronos.org/files/openmax_il_spec_1_0.pdf
- ^ https://www.khronos.org/registry/OpenMAX-IL/
- ^ https://www.khronos.org/conformance/adopters/conformant-products#openmaxil
- ^ https://android.googlesource.com/platform/frameworks/native/+/nougat-mr2.1-release/include/media/openmax/OMX_VideoExt.h
- ^ http://elinux.org/images/e/e0/The_OpenMAX_Integration_Layer_standard.pdf El estándar OpenMAX Integration Layer
- ^ http://elinux.org/images/5/52/Elc2011_garcia.pdf Integración de un códec de video de hardware en Android Stagefright usando OpenMAX IL
- ^ http://www.khronos.org/openmax/al/dtv/ OpenMAX AL - Extensión de televisión digital (DTV)
- ^ https://www.khronos.org/news/press/khronos-group-releases-provisional-openmax-al-digital-tv-extension-specific Khronos Group publica la especificación provisional de extensión de TV digital OpenMAX AL
- ^ Khronos Group lanza la especificación OpenMAX AL para procesamiento de imágenes, audio y video a nivel de aplicación en dispositivos móviles y de mano Archivado el 17 de marzo de 2011 en Wayback Machine , comunicado de prensa de Khronos
- ^ https://developer.android.com/about/versions/android-4.0-highlights.html
- ^ http://elinux.org/images/e/e0/The_OpenMAX_Integration_Layer_standard.pdf El estándar OpenMAX Integration Layer
- ^ http://www.juanrubio.me/2013/01/announcing-tizonia-openmax-il/ Anunciando Tizonia OpenMAX IL
- ^ http://gstreamer.freedesktop.org/releases/gst-omx/1.0.0.html
- ^ http://www.cnx-software.com/2011/11/11/openmax-open-media-acceleration/#ixzz2mVjgXE49 OpenMAX (Aceleración de medios abiertos)
- ^ https://www.khronos.org/registry/OpenMAX-IL/specs/OpenMAX_IL_1_2_0_Specification.pdf
- ^ "VideoToolbox - Documentación para desarrolladores de Apple" . developer.apple.com . Consultado el 5 de agosto de 2018 .
- ^ "Copia archivada" (PDF) . Archivado desde el original (PDF) en 2011-04-09 . Consultado el 16 de enero de 2012 .CS1 maint: copia archivada como título ( enlace ) API de decodificación de OpenVideo (OVD)
enlaces externos
- Khronos Group - Descripción general de OpenMAX y especificaciones de API
- Khronos Group - Registro público de API
- Khronos Group - Especificación OpenMAX AL 1.1
- Khronos Group - Especificación OpenMAX IL 1.1.2
- Khronos Group - Especificación OpenMAX DL 1.0.2
- ARM - Librería OpenMAX gratuita
- Mentor Graphics: Nucleus MMF aprovecha OpenMAX IL
- Mentor Graphics - Comunicado de prensa, Mentor logra la primera conformidad OpenMAX de la industria para Nuclues OS Multimedia Framework