OpenMAX
Utvecklare | Khronos Group |
---|---|
Hemsida |
OpenMAX (Open Media Acceleration), ofta förkortat som " OMX ", är en icke-proprietär och royaltyfri plattformsoberoende uppsättning C-språk programmeringsgränssnitt. Den tillhandahåller abstraktioner för rutiner som är särskilt användbara för bearbetning av ljud, video och stillbilder. Den är avsedd för lågeffekts- och inbäddade systemenheter (inklusive smartphones , spelkonsoler , digitala mediespelare och set-top-boxar ) som effektivt behöver bearbeta stora mängder multimediadata på förutsägbara sätt, som videocodec, grafikbibliotek och andra funktioner för video, bild, ljud, röst och tal.
OpenMAX tillhandahåller tre lager av gränssnitt: applikationslager (AL), integrationslager (IL) och utvecklingslager (DL). OpenMAX förvaltas av det ideella teknikkonsortiet Khronos Group .
Historia
Tillkännagavs ursprungligen i juli 2004. OpenMAX Working Group grundades ursprungligen av medlemmarna ARM , Motorola , Samsung , STMicroelectronics och Texas Instruments . Version 1.0 av specifikationen publicerades i december 2005. Det senaste utkastet som producerades av OpenMAX Working Group (1.2.0) är från 2011 och ingen produkt har deklarerats som överensstämmande sedan 2012. OpenMAX-specifikationen uppdaterades aldrig för att stödja nyare codecs som t.ex. HEVC eller VP9, vilket gör Android till de facto källan för uppdateringar av OpenMAX IL-standarden.
Skikten
OpenMAX AL är gränssnittet mellan multimediaapplikationer, såsom en mediaspelare, och plattformens mediaramverk . Det tillåter företag som utvecklar applikationer att enkelt migrera sina applikationer till olika plattformar (kunder) som stödjer OpenMAX AL Application Programming Interface (API).
OpenMAX IL är gränssnittet mellan mediaramverk, (som StageFright eller MediaCodec API på Android, DirectShow på Windows, FFmpeg eller GStreamer på Linux), och en uppsättning multimediakomponenter (som en ljud- eller videocodec ) . Det tillåter företag som bygger plattformar (t.ex. tillåter implementering av en MP3-spelare) att enkelt ändra komponenter som MP3-avkodare och Equalizer-effekter och köpa komponenter till sin plattform från olika leverantörer.
OpenMAX DL är gränssnittet mellan fysisk hårdvara, såsom digital signalprocessor (DSP)-chips, CPU : er , GPU:er och mjukvara, som videocodecs och 3D-motorer. Det gör att företag enkelt kan integrera ny hårdvara som stöder OpenMAX DL utan att optimera deras lågnivåprogramvara.
Appliceringsskikt
Utvecklare | Khronos Group |
---|---|
Stabil frisättning | 1.1 / 18 januari 2011
|
Operativ system | Cross-plattform |
Typ | API |
Licens | Olika |
Hemsida |
|
OpenMAX AL rymmer vanliga multimediaapplikationer genom att standardisera en uppsättning representativa objekt , såväl som gränssnitt på dessa objekt, för att kontrollera och konfigurera dem. OpenMAX AL API är uppdelat i två profiler: Media Player och Media Player/Recorder. En plattform kan vara kompatibel med en eller båda av dessa profiler genom att tillhandahålla alla funktioner som ingår i en profil.
Det är ett multimedia-API på applikationsnivå, C-språk , designat för enheter med begränsade resurser. OpenMAX AL API-design lägger särskild tonvikt på att säkerställa att API är lämpligt för mobila inbäddade enheter - inklusive grundläggande mobiltelefoner, smarta "funktions"-telefoner, handdatorer och mobila digitala musikspelare. Detta utesluter dock inte dess tillämplighet på andra sofistikerade mediauppspelnings- och inspelningsenheter.
OpenMAX AL API-designen ägnar särskild uppmärksamhet åt användarvänlighet för applikationsutvecklare. Dess status som ett öppet plattformsoberoende API gör det möjligt för utvecklare att porta samma källa över flera enheter med minimal ansträngning. Därför ger OpenMAX AL en stabil bas för applikationsutveckling.
Funktioner
OpenMAX AL funktioner inkluderar:
- Videouppspelning och inspelning
- Ljuduppspelning och inspelning
- Bildtagning (kamera) och visning
- Kamerakontroller
- Radio och RDS
- Grundläggande MIDI- uppspelning
- Metadataextraktion och infogning
Digital TV-förlängning
En förlängningsspecifikation för digital-tv (DTV) för OpenMAX AL lägger till standardagnostisk mobil-TV-inställning, uppspelning, inspelning och elektronisk programguidefunktion till OpenMAX AL Multimedia API, som ett modulärt royaltyfritt, plattformsoberoende C-språk API för hög- prestanda digital-tv-relaterade applikationer på mobila och inbyggda enheter. DTV Extension är kompatibel med alla större mobil-TV-standarder (t.ex. DVB-H, ISDB-T, T-DMB, etc.), och stöder leveransmetoder för sändning, unicast och multicast för digital-TV.
Specifikationsversioner
- OpenMAX AL 1.0 provisorisk specifikation - en provisorisk version, daterad 2007-09-02, för att underlätta feedback från communityn innan den slutliga 1.0-versionen.
- OpenMAX AL 1.0-specifikation - daterad 2009-06-23
- OpenMAX AL 1.0.1-specifikation - daterad 2010-03-12
- OpenMAX AL 1.1-specifikation - daterad 2011-01-18
Genomföranden
- Android 4.0 och senare visar OpenMAX AL som en del av sitt NDK (Native Development Kit) .
- LIM OpenMAX är en öppen källkodsimplementering av OpenMAX AL och OpenMAX IL för Linux
- Bellagio är en OpenMAX IL-implementering med öppen källkod för Linux som underhålls av STMicroelectronics .
- Tizonia är en OpenMAX IL-implementering med öppen källkod för Linux
Jämförelse med OpenSL ES
OpenSL ES (Open Sound Library for Embedded Systems) är en annan Khronos Group API som också tillhandahåller ett ljudbibliotek för samma målmarknad som OpenMAX AL, medan OpenMAX riktar sig till de kompletta multimediatjänsterna. OpenSL ES och OpenMAX AL ljudsubset delar samma gemensamma arkitektur och har några gemensamma funktioner:
- Ljuduppspelning och inspelning
- Grundläggande MIDI-uppspelning
- Metadataextraktion
Integrationslager
Utvecklare | Khronos Group |
---|---|
Stabil frisättning | 1.1.2 / 15 september 2008
|
Förhandsgranska release | 1.2.0 / 7 november 2011
|
Operativ system | Cross-plattform |
Typ | API |
Licens | Olika |
Hemsida |
|
OpenMAX IL API strävar efter att ge mediakomponenter portabilitet över en rad plattformar med hjälp av C-språket . I OpenMAX IL representerar komponenter individuella block av funktionalitet. Komponenter kan vara källor, sänkor, codecs, filter, splitters, mixers eller någon annan dataoperatör. Beroende på implementeringen kan en komponent möjligen representera en hårdvara, en mjukvarucodec, en annan processor eller en kombination därav.
Gränssnittet abstraherar hård- och mjukvaruarkitekturen i systemet. OpenMAX IL API tillåter användaren att ladda, styra, ansluta och avlasta de individuella komponenterna. Denna flexibla kärnarkitektur gör att Integration Layer enkelt kan implementera nästan alla medieanvändningsfall och mesh med befintliga grafbaserade mediaramverk. Huvudfokus för OpenMAX IL API är portabilitet av mediekomponenter.
OpenMAX IL API-designen ägnar särskild uppmärksamhet åt flexibilitet i användningsfall och optimerade dataöverföringar mellan komponenter.
OpenMAX IL API valdes som bas för API:et för att integrera ljud- och videocodec på Android, vilket har resulterat i att de flesta SoC-leverantörer levererar en minimal implementering som bara stöder den delmängd som krävs av Android. Applikationer använder inte dessa OpenMAX IL-komponenter direkt, utan endast via Android MediaCodec API. Androids delmängd av OpenMAX IL med dess tillägg är nu de facto-standarden.
2011 släpptes den preliminära versionen 1.2.0.
OpenMAX IL-implementationer med öppen källkod är tillgängliga,
- Bellagio , underhålls av STMicroelectronics.
- LIM OpenMAX , en implementering som har både AL och IL.
- Android StageFright , en partiell implementering av IL som är de facto-standarden.
Utvecklingslager
Utvecklare | Khronos Group |
---|---|
Stabil frisättning | 1.0.2 / 21 december 2007
|
Operativ system | Cross-plattform |
Typ | API |
Licens | Olika |
Hemsida |
|
OpenMAX DL API definierar en uppsättning multimediakärnor på låg nivå eller byggstenar för mediebearbetning. Byggstenarna kan användas för att accelerera traditionella beräkningshotspots inom standardiserade mediacodecs och andra integrerade mediebearbetningsmotorer. Den funktionella omfattningen av OpenMAX DL-gränssnittet spänner över flera domäner inklusive signalbehandling och bildbehandling , ljudkodning , bildkodning och videokodning .
OpenMAX DL är uppdelad i fem applikationsdomäner:
- AC - Audio Codecs (MP3-dekoder och AAC-dekoderkomponenter)
- IC - Bildkodekar (JPEG-komponenter)
- IP - Bildbehandling (Allmänna bildbehandlingsfunktioner)
- SP - Signal Processing (Allmänna ljudbehandlingsfunktioner)
- VC - Videokodekar (H.264- och MP4-komponenter)
Genomföranden
- Optimerade implementeringar för NEON (för Cortex A8 -kärnor) och SIMD (för ARM11- kärnor), samt en ANSI C- referensimplementering, var tidigare tillgängliga från ARM för registrerade användare.
- OpenMAX API stöds av PlayStation 3 -konsolen. [ citat behövs ]
Arbetsgrupp
OpenMAX-arbetsgruppen grundades tillsammans med systerprojektet OpenVG den 6 juli 2004. Promotormedlemmar 2008 var 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 och Texas Instruments .
Se även
- Video Acceleration API (VA API)
- VDPAU (Video Decode and Presentation API för Unix)
- X-Video Bitstream Acceleration (XvBA)
- X-Video Motion Compensation (XvMC)
- DirectX Video Acceleration (DxVA) API - Microsoft Windows analog
- Distributed Codec Engine (libdce) är ett Texas Instruments API för videocodec-motorn i OMAP- baserade inbäddade system
- VideoToolbox är ett API från Apple Inc. för hårdvaruaccelererad avkodning på Apple TV och Mac OS X.
- OpenVideo Decode (OVD) – ett nytt öppet plattformsoberoende videoaccelerations-API från AMD .
- Nvidia PureVideo - bitströmstekniken från NVIDIA som används i deras grafikkretsar för att påskynda videoavkodning på hårdvaru- GPU .
- UVD (Unified Video Decoder) - bitströmstekniken från ATI Technologies som används i sina grafikkretsar för att påskynda videoavkodning på hårdvaru- GPU .
externa länkar
- Khronos Group — OpenMAX Översikt och API-specifikationer
- Khronos Group — Public API Registry
- Khronos Group — OpenMAX AL 1.1-specifikation
- Khronos Group — OpenMAX IL 1.1.2 Specifikation
- Khronos Group — OpenMAX DL 1.0.2-specifikation
- ARM - Gratis OpenMAX Library
- Mentorgrafik - Nucleus MMF utnyttjar OpenMAX IL
- Mentor Graphics - Pressmeddelande, Mentor uppnår branschens första OpenMAX-överensstämmelse för Nuclues OS Multimedia Framework