레이블이 OpenMAX인 게시물을 표시합니다. 모든 게시물 표시
레이블이 OpenMAX인 게시물을 표시합니다. 모든 게시물 표시

3/01/2017

OpenMAX 기본 개념과 사용

1. OpenMAX 개념 

크로노스그룹(Khronos) 에서 만든 Media Library 이식을 위한 표준이라고 한다.
한마디로, 표준 API를 정해놓고, 사용하게 만든 것이며 Application 과 Hardware간에 이식성을 높이기 위해서 사용이 되어진다.
약자로 omx로 말하며 많은 embedded soc에서 많이 사용이 되어지고 있다.

OpenMax의 구현은 다음과 같이 3 단계의 Layer로 구성이 된다고 한다.
  1. OpenMAX AL (Application Layer) 
  2. OpenMAX IL (Intergration Layer)
  3. 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 업체마다 상당히 상이 한 것 같다.

  1. Linux에서는 Gstreamer 와 FFmpeg or Libav   
  2. Android에서는 StageFright or MediaCodec API
  3. Window에서는  DirectShow

  • Android의 StageFright의 구성 


  https://source.android.com/devices/media/


  • Gstreamer 와 OpenMax
Gstreamer도 OpenMax 대신에 soft codec인 FFmpeg을 사용해도 되지만, 성능을 위해서
많이 이렇게 사용을 한다. 

  http://elinux.org/images/e/e0/Gst-openmax.pdf
  https://www.freedesktop.org/wiki/GstOpenMAX/

  • Bellagio 
  STMicroelectronics의 관리되어지 Project 로 OpenMAX IL을 제공해주고 있다.
  http://omxil.sourceforge.net/

  • Lim OpenMax
  AL과 IL을 둘 다 구현을 하였다고 하는데 Open Source로 관리되는 것 같다.
  http://limoa.sourceforge.net/


1.3 OpenMAX DL (Development Layer)

CPU or DSP , GPU로 Hardware적으로 Media Engine을 만들어 제공을 하고 있으며, 이는 IL과 통합을 해야 제 기능을 할 수 있다.


2. OpenMax IL/AL 관련 Spec 
아래의 사이트에 가서 각각 Layer에 대한 Spec을 확인을 해보자.

  https://www.khronos.org/openmax/