OpenMAX

OpenMAX
개발자크로노스 그룹
웹사이트www.khronos.org/openmax/

OpenMAX(오픈맥스, Open Media Acceleration) 또는 "OMX"는 비독점적이고 로열티가 없는 교차 플랫폼 C 언어 프로그래밍 인터페이스 세트이다. 이는 특히 오디오, 비디오 및 정지 영상 처리에 유용한 루틴을 위한 추상화를 제공한다. 이는 비디오 코덱, 그래픽 라이브러리, 그리고 영상, 이미지, 오디오, 음성 및 언어를 위한 기타 기능과 같이 방대한 양의 멀티미디어 데이터를 예측 가능한 방식으로 효율적으로 처리해야 하는 저전력 및 임베디드 시스템 장치(스마트폰, 게임 콘솔, 디지털 미디어 플레이어, 셋톱박스 포함)를 대상으로 한다.

OpenMAX는 애플리케이션 계층(AL), 통합 계층(IL), 개발 계층(DL)의 세 가지 인터페이스 계층을 제공한다. OpenMAX는 비영리 기술 연합체인 크로노스 그룹(Khronos Group)이 관리한다.

역사

2004년 7월에 처음 발표되었다. OpenMAX 워킹 그룹은 초기에 ARM, 모토로라, 삼성, ST마이크로일렉트로닉스, 텍사스 인스트루먼트의 회원사들에 의해 설립되었다. 명세서 버전 1.0은 2005년 12월에 발행되었다. OpenMAX 워킹 그룹이 작성한 마지막 초안(1.2.0)은 2011년의 것이며 2012년 이후로는 어떠한 제품도 적합성 인증을 받지 않았다. OpenMAX 명세서는 HEVC나 VP9와 같은 최근 코덱을 지원하도록 업데이트된 적이 없으며, 이로 인해 안드로이드가 OpenMAX IL 표준에 대한 사실상의 업데이트 원천이 되었다.

계층

OpenMAX AL은 미디어 플레이어와 같은 멀티미디어 애플리케이션과 플랫폼 미디어 프레임워크 사이의 인터페이스이다. 이를 통해 애플리케이션을 개발하는 기업은 OpenMAX AL API를 지원하는 다른 플랫폼(고객)으로 애플리케이션을 쉽게 이식할 수 있다.

OpenMAX IL은 미디어 프레임워크(예: 안드로이드의 StageFright 또는 MediaCodec API, 윈도우의 DirectShow, 리눅스의 FFmpeg 또는 GStreamer)와 일련의 멀티미디어 구성 요소(예: 오디오 또는 비디오 코덱) 사이의 인터페이스이다. 이를 통해 플랫폼을 구축하는 기업은(예: MP3 플레이어 구현을 허용) MP3 디코더 및 이퀄라이저 효과와 같은 구성 요소를 쉽게 변경하고 여러 공급업체로부터 플랫폼용 구성 요소를 구매할 수 있다.

OpenMAX DL은 DSP 칩, CPU, GPU와 같은 물리적 하드웨어와 비디오 코덱 및 3D 엔진과 같은 소프트웨어 사이의 인터페이스이다. 이를 통해 기업은 저수준 소프트웨어를 재최적화하지 않고도 OpenMAX DL을 지원하는 새로운 하드웨어를 쉽게 통합할 수 있다.

애플리케이션 계층

OpenMAX AL
개발자크로노스 그룹
안정화 버전
1.1 / 2011년 1월 18일(15년 전)(2011-01-18)
운영 체제크로스 플랫폼
종류API
라이선스Various
웹사이트www.khronos.org/openmax/ 위키데이터에서 편집하기

OpenMAX AL은 일련의 대표적인 객체와 해당 객체에 대한 인터페이스를 표준화하여 일반적인 멀티미디어 애플리케이션 사용 사례를 수용하고 이를 제어 및 구성하도록 한다. OpenMAX AL API는 미디어 플레이어와 미디어 플레이어/레코더의 두 가지 프로파일로 나뉜다. 플랫폼은 프로파일에 포함된 모든 기능을 제공함으로써 하나 또는 두 프로파일 모두에 준수할 수 있다.

이는 리소스가 제한된 장치를 위해 설계된 애플리케이션 수준의 C 언어 멀티미디어 API이다. OpenMAX AL API 설계는 기본 휴대전화, 스마트 "피처폰", PDA, 모바일 디지털 음악 플레이어를 포함한 모바일 임베디드 장치에 적합하도록 보장하는 데 특히 중점을 둔다. 그럼에도 불구하고, 이는 다른 정교한 미디어 재생 및 녹화 장치에 대한 적용 가능성을 배제하지 않는다.

OpenMAX AL API 설계는 애플리케이션 개발자의 편의성에 특별한 주의를 기울인다. 개방형 크로스 플랫폼 API로서의 위상은 개발자가 최소한의 노력으로 여러 장치에 걸쳐 동일한 소스를 이식할 수 있도록 한다. 따라서 OpenMAX AL은 애플리케이션 개발을 위한 안정적인 기반을 제공한다.

특징

OpenMAX AL의 특징은 다음과 같다:

디지털 TV 확장

OpenMAX AL의 디지털 텔레비전(DTV) 확장 명세는 모바일 및 임베디드 장치에서 고성능 디지털 TV 관련 애플리케이션을 위한 모듈식 로열티 프리 크로스 플랫폼 C 언어 API로서, 표준에 구애받지 않는 모바일 TV 튜닝, 재생, 녹화 및 전자 프로그램 가이드 기능을 OpenMAX AL 멀티미디어 API에 추가한다. DTV 확장은 모든 주요 모바일 TV 표준(예: DVB-H, ISDB-T, T-DMB 등)과 호환되며 디지털 TV를 위한 방송, 유니캐스트 및 멀티캐스트 전달 방식을 지원한다.

명세 버전

구현

OpenSL ES와의 비교

OpenSL ES(Open Sound Library for Embedded Systems)는 OpenMAX AL과 동일한 타겟 시장을 위한 오디오 라이브러리를 제공하는 또 다른 크로노스 그룹 API이며, OpenMAX는 전체 멀티미디어 서비스를 대상으로 한다. OpenSL ES와 OpenMAX AL 오디오 하위 집합은 동일한 공통 아키텍처를 공유하며 몇 가지 공통 기능을 가진다:

통합 계층

OpenMAX IL
개발자크로노스 그룹
안정화 버전
1.1.2 / 2008년 9월 15일(18년 전)(2008-09-15)
미리보기 버전
1.2.0 / 2011년 11월 7일(14년 전)(2011-11-07)
운영 체제크로스 플랫폼
종류API
라이선스Various
웹사이트www.khronos.org/openmax/ 위키데이터에서 편집하기

OpenMAX IL API는 C 언어를 사용하여 다양한 플랫폼에서 미디어 구성 요소의 이식성을 제공하기 위해 노력한다. OpenMAX IL에서 구성 요소는 개별 기능 블록을 나타낸다. 구성 요소는 소스, 싱크, 코덱, 필터, 스플리터, 믹서 또는 기타 데이터 연산자가 될 수 있다. 구현에 따라 구성 요소는 하드웨어, 소프트웨어 코덱, 다른 프로세서 또는 이들의 조합을 나타낼 수 있다.

이 인터페이스는 시스템의 하드웨어 및 소프트웨어 아키텍처를 추상화한다. OpenMAX IL API를 사용하면 사용자가 개별 구성 요소를 로드, 제어, 연결 및 언로드할 수 있다. 이러한 유연한 핵심 아키텍처를 통해 통합 계층은 거의 모든 미디어 사용 사례를 쉽게 구현하고 기존의 그래프 기반 미디어 프레임워크와 연동할 수 있다. OpenMAX IL API의 핵심 초점은 미디어 구성 요소의 이식성이다.

OpenMAX IL API 설계는 사용 사례의 유연성과 구성 요소 간의 최적화된 데이터 전송에 특별한 주의를 기울인다.

OpenMAX IL API는 안드로이드에서 오디오 및 비디오 코덱을 통합하기 위한 API의 기반으로 선택되었으며, 그 결과 대부분의 SoC 공급업체는 안드로이드에서 요구하는 하위 집합만 지원하는 최소한의 구현을 제공하게 되었다. 애플리케이션은 이러한 OpenMAX IL 구성 요소를 직접 사용하지 않고 안드로이드 MediaCodec API를 통해서만 사용한다. 확장이 포함된 안드로이드의 OpenMAX IL 하위 집합은 현재 사실상의 표준이다.

2011년에 임시 버전 1.2.0이 릴리스되었다.

구현

개발 계층

OpenMAX DL
개발자크로노스 그룹
안정화 버전
1.0.2 / 2007년 12월 21일(18년 전)(2007-12-21)
운영 체제크로스 플랫폼
종류API
라이선스Various
웹사이트www.khronos.org/openmax/ 위키데이터에서 편집하기

OpenMAX DL API는 일련의 저수준 멀티미디어 커널 또는 미디어 처리 구성 요소를 정의한다. 이 구성 요소는 표준화된 미디어 코덱 및 기타 통합 미디어 처리 엔진 내에서 전통적인 계산 핫스팟을 가속화하는 데 사용될 수 있다. OpenMAX DL 인터페이스의 기능 범위는 신호 처리 및 영상 처리, 오디오 코딩, 이미지 코딩, 비디오 코딩을 포함한 여러 도메인에 걸쳐 있다.

OpenMAX DL은 5개의 애플리케이션 도메인으로 나뉜다:

구현

워킹 그룹

OpenMAX 워킹 그룹은 자매 프로젝트인 OpenVG와 함께 2004년 7월 6일에 설립되었다. 2008년의 프로모션 멤버로는 AMD, Apple, ARM, Creative, Dell, Ericsson, 프리스케일, Imagination Technologies, 인텔, IBM, 모토로라, 노키아, 엔비디아, 삼성전자, SK텔레콤, 소니 컴퓨터 엔터테인먼트, 텍사스 인스트루먼트가 있었다.

같이 보기

각주

  1. ↑ http://www.cnx-software.com/2011/11/11/openmax-open-media-acceleration/ OpenMAX (Open Media Acceleration)
  2. ↑ https://events.linuxfoundation.org/images/stories/pdf/lceu2012_debski.pdf 보관됨 2014-01-06 - 웨이백 머신 Video4Linux2 - Path to a Standardized Video Codec API
  3. ↑ http://jan.newmarch.name/LinuxSound/Sampled/OpenMAX/ 보관됨 2016-03-12 - 웨이백 머신 Contents of full book "Linux Sound" - Chapter 13: OpenMAX/OpenSL
  4. ↑ http://www.khronos.org/openmax/ OpenMAX - The Standard for Media Library Portability (by Khronos Group)
  5. ↑ “Khronos Group Announces New OpenMAX Open Standard for Enabling Effective Media Acceleration”. 2004년 7월 6일.
  6. ↑ The Khronos Group (2005년 12월 16일). 《OpenMAX™ Integration Layer Application Programming Interface Specification: Version 1.0》 1.10판 (영어). The Khronos Group Inc.
  7. ↑ “Khronos OpenMAX IL Registry - the Khronos Group Inc”.
  8. ↑ “The Khronos Group”. 2021년 11월 21일.
  9. ↑ “Include/Media/Openmax/OMX_VideoExt.h - platform/Frameworks/Native - Git at Google”.
  10. ↑ http://elinux.org/images/e/e0/The_OpenMAX_Integration_Layer_standard.pdf The OpenMAX Integration Layer standard
  11. ↑ http://elinux.org/images/5/52/Elc2011_garcia.pdf Integrating a Hardware Video Codec into Android Stagefright using OpenMAX IL
  12. ↑ http://www.khronos.org/openmax/al/dtv/ OpenMAX AL - Digital Television (DTV) Extension
  13. ↑ https://www.khronos.org/news/press/khronos-group-releases-provisional-openmax-al-digital-tv-extension-specific Khronos Group Releases Provisional OpenMAX AL Digital TV Extension Specification
  14. ↑ Khronos Group Releases OpenMAX AL Specification for Application-level Video, Audio and Image Processing on Mobile and Handheld Devices 보관됨 2011-03-17 - 웨이백 머신, Khronos press release
  15. ↑ “Ice Cream Sandwich”.
  16. ↑ The Khronos Group (2011년 11월 7일). 《OpenMAX™ Integration Layer Application Programming Interface Specification: Version 1.2.0 Provisional》 1.2.0.0판 (영어). The Khronos Group Inc.
  17. ↑ “Announcing Tizonia OpenMAX IL”. 2014년 11월 12일에 원본 문서에서 보존된 문서. 2013년 12월 4일에 확인함.
  18. ↑ “The OpenMAX Integration Layer standard” (PDF).
  19. ↑ König, Christian (2013년 10월 24일). “OpenMAX state tracker” (메일링 리스트). 《mesa-dev》. 2015년 11월 28일에 확인함.
  20. ↑ “Add OpenMAX state tracker in Mesa/Gallium that uses Tizonia”.
  21. ↑ “Khronos Standards - ARM”. 2022년 9월 12일. 2013년 10월 4일에 원본 문서에서 보존된 문서. 2022년 9월 12일에 확인함.
  22. ↑ “Using NEON optimized libraries”. 2022년 9월 12일.
  23. ↑ “VideoToolbox - Apple Developer Documentation”. 《developer.apple.com》. 2018년 8월 5일에 확인함.
  24. ↑ “Archived copy” (PDF). 2011년 4월 9일에 원본 문서 (PDF)에서 보존된 문서. 2012년 1월 16일에 확인함. OpenVideo Decode (OVD) API

외부 링크