OpenMAX (Open Media Acceleration), a menudo abreviado como " OMX ", es un conjunto de interfaces de programación en lenguaje C multiplataforma, libre de regalías y sin propietario . Proporciona abstracciones para rutinas que son especialmente útiles para el procesamiento de audio, video e imágenes fijas. [1] [2] Está destinado a dispositivos de bajo consumo y sistemas integrados (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 códecs de video, bibliotecas de gráficos y otras funciones para video, imagen, audio, voz y habla. [3]
OpenMAX ofrece tres capas de interfaces: capa de aplicación (AL), capa de integración (IL) y capa de desarrollo (DL). OpenMAX está gestionado por el consorcio tecnológico sin ánimo de lucro Khronos Group . [4]
Anunciado inicialmente en julio de 2004. [5] El grupo de trabajo OpenMAX fue fundado inicialmente por los 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 producido por el grupo de trabajo OpenMAX (1.2.0) data de 2011 [7] y ningún producto ha sido declarado como conforme desde 2012. [8] La especificación OpenMAX nunca se actualizó 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]
OpenMAX AL es la interfaz entre las aplicaciones multimedia, como un reproductor multimedia, y la plataforma de marco multimedia . Permite a las empresas que desarrollan aplicaciones migrar fácilmente sus aplicaciones a diferentes plataformas (clientes) que admitan la interfaz de programación de aplicaciones (API) OpenMAX AL. [10]
OpenMAX IL es la interfaz entre un marco multimedia (como StageFright o MediaCodec API en Android, DirectShow en Windows, FFmpeg o GStreamer en Linux) y un conjunto de componentes multimedia (como códecs de audio o video ). Permite a las empresas que construyen plataformas (por ejemplo, permitiendo 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 el hardware físico, como chips de procesadores de señales digitales (DSP), CPU , GPU y software, como códecs de video y motores 3D. Permite a las empresas integrar fácilmente nuevo hardware compatible con OpenMAX DL sin tener que volver a optimizar su software de bajo nivel.
OpenMAX AL se adapta a los casos de uso de aplicaciones multimedia habituales mediante la estandarización de un conjunto de objetos representativos , así como de interfaces en esos objetos, para controlarlos y configurarlos. La API de OpenMAX AL se divide en dos perfiles: reproductor multimedia y reproductor/grabador multimedia. Una plataforma puede ser compatible con uno o ambos perfiles proporcionando todas las funciones incluidas en un perfil.
Se trata de una API multimedia en lenguaje C a nivel de aplicación 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 de OpenMAX AL presta especial atención a la facilidad de uso para los desarrolladores de aplicaciones. Su condición de API abierta y multiplataforma permite a los desarrolladores portar el mismo código fuente a varios dispositivos con un mínimo esfuerzo. De este modo, OpenMAX AL proporciona una base estable para el desarrollo de aplicaciones.
Las características de OpenMAX AL incluyen:
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 televisión móvil independientes de los estándares a la API multimedia de OpenMAX AL, como una API en lenguaje C multiplataforma y libre de regalías modular para aplicaciones relacionadas con la televisión digital de alto rendimiento en dispositivos móviles e integrados. La extensión DTV es compatible con todos los principales estándares de televisión móvil (por ejemplo, DVB-H, ISDB-T, T-DMB, etc.) y admite métodos de entrega de transmisión, unidifusión y multidifusión para televisión digital. [12] [13]
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 apunta a los servicios multimedia completos. OpenSL ES y el subconjunto de audio de OpenMAX AL comparten la misma arquitectura común y tienen algunas características comunes:
La API de OpenMAX IL busca brindar portabilidad a los componentes multimedia en una variedad de plataformas mediante el lenguaje C. En OpenMAX IL, los componentes representan bloques individuales de funcionalidad. Los componentes pueden ser fuentes, receptores, códecs, filtros, divisores, mezcladores o cualquier otro operador de datos. Según la implementación, un componente podría representar una pieza de hardware, un códec de software, otro procesador o una combinación de estos.
La interfaz abstrae la arquitectura de hardware y software del sistema. La API de OpenMAX IL permite al usuario cargar, controlar, conectar y descargar los componentes individuales. Esta arquitectura de núcleo flexible permite que la capa de integración implemente fácilmente casi cualquier caso de uso de medios y se integre con los marcos de medios basados en gráficos existentes. El enfoque clave de la API de OpenMAX IL es la portabilidad de los componentes de medios.
El diseño de la API de IL de OpenMAX dedica especial atención a la flexibilidad de los casos de uso y a las transferencias de datos optimizadas entre componentes.
La API OpenMAX IL fue elegida como base para la API de integración de códecs de audio y video en Android, lo que ha dado 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 OpenMAX IL directamente, sino solo a través de la API MediaCodec de Android. El subconjunto de OpenMAX IL de Android con sus extensiones es ahora el estándar de facto.
En 2011 se lanzó la versión provisional 1.2.0. [16]
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 se pueden utilizar para acelerar los puntos críticos 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, incluidos el procesamiento de señales y el procesamiento de imágenes , la codificación de audio , la codificación de imágenes y la codificación de video .
OpenMAX DL se divide en cinco dominios de aplicación:
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 .
{{cite web}}
: CS1 maint: copia archivada como título ( enlace )API de decodificación de vídeo abierto (OVD)