stringtranslate.com

OpenMAX

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]

Historia

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]

Capas

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.

Capa de aplicación

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.

Características

Las características de OpenMAX AL incluyen:

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 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]

Versiones de especificaciones

Implementaciones

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 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:

Capa de integración

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]

Implementaciones

Capa de desarrollo

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:

Implementaciones

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 .

Véase también

Referencias

  1. ^ http://www.cnx-software.com/2011/11/11/openmax-open-media-acceleration/ OpenMAX (Aceleración de medios abiertos)
  2. ^ https://events.linuxfoundation.org/images/stories/pdf/lceu2012_debski.pdf Archivado el 6 de enero de 2014 en Wayback Machine Video4Linux2: camino hacia una API de códec de video estandarizada
  3. ^ 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
  4. ^ http://www.khronos.org/openmax/ OpenMAX: el estándar para la portabilidad de bibliotecas multimedia (por Khronos Group)
  5. ^ "Khronos Group anuncia el nuevo estándar abierto OpenMAX para permitir una aceleración eficaz de los medios". 6 de julio de 2004.
  6. ^ https://www.khronos.org/files/openmax_il_spec_1_0.pdf [ URL desnuda PDF ]
  7. ^ "Registro IL de Khronos OpenMAX - Khronos Group Inc".
  8. ^ "El Grupo Khronos". 21 de noviembre de 2021.
  9. ^ "Include/Media/Openmax/OMX_VideoExt.h - plataforma/Frameworks/Nativo - Git en Google".
  10. ^ http://elinux.org/images/e/e0/The_OpenMAX_Integration_Layer_standard.pdf El estándar de capa de integración OpenMAX
  11. ^ http://elinux.org/images/5/52/Elc2011_garcia.pdf Integración de un códec de vídeo de hardware en Android Stagefright utilizando OpenMAX IL
  12. ^ http://www.khronos.org/openmax/al/dtv/ OpenMAX AL - Extensión de televisión digital (DTV)
  13. ^ 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 televisión digital OpenMAX AL
  14. ^ Khronos Group publica la especificación OpenMAX AL para procesamiento de video, audio e imágenes a nivel de aplicación en dispositivos móviles y portátiles Archivado el 17 de marzo de 2011 en Wayback Machine , comunicado de prensa de Khronos
  15. ^ "Sándwich de helado".
  16. ^ https://www.khronos.org/registry/OpenMAX-IL/specs/OpenMAX_IL_1_2_0_Specification.pdf [ URL desnuda PDF ]
  17. ^ "Anunciamos Tizonia OpenMAX IL".
  18. ^ "El estándar de capa de integración OpenMAX" (PDF) .
  19. ^ König, Christian (24 de octubre de 2013). «OpenMAX state tracker». mesa-dev (Lista de correo) . Consultado el 28 de noviembre de 2015 .
  20. ^ "Agregar rastreador de estado OpenMAX en Mesa/Gallium que usa Tizonia".
  21. ^ "Estándares de Khronos - ARM". 12 de septiembre de 2022. Archivado desde el original el 4 de octubre de 2013.
  22. ^ "Uso de bibliotecas optimizadas de NEON". 12 de septiembre de 2022.
  23. ^ "VideoToolbox - Documentación para desarrolladores de Apple". developer.apple.com . Consultado el 5 de agosto de 2018 .
  24. ^ "Copia archivada" (PDF) . Archivado desde el original (PDF) el 9 de abril de 2011. Consultado el 16 de enero de 2012 .{{cite web}}: CS1 maint: copia archivada como título ( enlace )API de decodificación de vídeo abierto (OVD)

Enlaces externos