크로노스그룹(Khronos) 에서 만든 Media Library 이식을 위한 표준이라고 한다.
한마디로, 표준 API를 정해놓고, 사용하게 만든 것이며 Application 과 Hardware간에 이식성을 높이기 위해서 사용이 되어진다.
약자로 omx로 말하며 많은 embedded soc에서 많이 사용이 되어지고 있다.
OpenMax의 구현은 다음과 같이 3 단계의 Layer로 구성이 된다고 한다.
- OpenMAX AL (Application Layer)
- OpenMAX IL (Intergration Layer)
- OpenMAX DL (Development Layer)
https://en.wikipedia.org/wiki/OpenMAX
1.1 OpenMAX AL (Application Layer)
Application과 Multimedia middleware사이에 표준 interface를 제공한다고 한다.
한마디로 Application이 이 API를 사용하면 이식성이 높아지는 것이다.
하지만, 이부분은 거의 보지를 못했다.
1.2 OpenMAX IL (Intergration Layer)
현재 가장 많이 사용되어지는 Layer로 IL Interface와 Soft 통합하여 주로 사용을 하는 것 같다.
현재 많이 보는 곳이 Gstreamer와 Android의 StageFright가 되는 것 같다.
솔직히 IL을 이용하여 Porting을 해본 경험이 있으면 좋겠지만, 아직 경험이 없으며,
이 부분은 Chip 업체마다 상당히 상이 한 것 같다.
- Linux에서는 Gstreamer 와 FFmpeg or Libav
- Android에서는 StageFright or MediaCodec API
- Window에서는 DirectShow
- Android의 StageFright의 구성
https://source.android.com/devices/media/
- Gstreamer 와 OpenMax
많이 이렇게 사용을 한다.
http://elinux.org/images/e/e0/Gst-openmax.pdf
https://www.freedesktop.org/wiki/GstOpenMAX/
- Bellagio
http://omxil.sourceforge.net/
- Lim OpenMax
http://limoa.sourceforge.net/
1.3 OpenMAX DL (Development Layer)
CPU or DSP , GPU로 Hardware적으로 Media Engine을 만들어 제공을 하고 있으며, 이는 IL과 통합을 해야 제 기능을 할 수 있다.
https://www.khronos.org/openmax/