Minsung Kim

i.MX6 CPU용 코덱 솔루션 소개 드립니다. [Directshow]

Discussion created by Minsung Kim on Dec 12, 2017

안녕하세요?

i.MX6 CPU로 임베디드 솔루션을 개발하고 있는 위아데브 입니다.

i.MX6 CPU는 Android와 Linux 뿐만 아니라 WinCE 계열인 Windows Embedded Compact 7과

Windows Embedded Compact 2013 운영체제를 지원합니다

저희가 만든 Directshow 기반 코덱 솔루션을 소개 드립니다.

참고 부탁 드립니다.

-------------------------------------------------------------------------------------------------------------------------------

i.MX6 CPU용 코덱 솔루션을 소개합니다.

NXP 사의 i.MX6 CPU는 Windows Embedded Compact 2013(WEC 2013)과

Windows Embedded Compact 7(WEC 7) 운영체제를 지원합니다.

Windows CE(WinCE) 계열인 WEC 2013과 WEC 7 운영체제용 코덱을 개발하였습니다.

하드웨어 비디오 가속기(VPU)와 하드웨어 이미지 처리 가속기(IPU)를 이용한 코덱을 포함하여,  

다양한 비디오 및 오디오 파일을 지원하고 고성능의 비디오 디코딩/인코딩을 지원하기 위해

Directshow 기반 코덱을 개발하였습니다.

또한 FTP를 포함한 네트워크 Protocol 를 지원하고 있습니다.

i.MX6 CPU용 코덱 솔루션의 자세한 사항은 다음과 같습니다.

 

*i.MX6 CPU용 코덱 솔루션 : Directshow 기반

 

1. 지원 운영체제 :

     - Windows Embedded Compact 2013 : Windows CE 8.0

     - Windows Embedded Compact 7 : Windows CE 7.0

 

2. 지원 CPU :

     - i.MX6 Solo CPU : Cortex A9 Solo Core

     - i.MX6 Dual, Dual Plus, Dual Lite CPU : Cortex A9 Dual Core

     - i.MX6 Quad, Quad Plus CPU : Cortex A9 Quad Core

 

3. 지원 개발 언어 :

     - C/C++ :  Win32 API, MFC

     - C# : .Net Compact Framework

 

*오디오 플레이어 관련 코덱

   오디오 파일은 다음 그림의 필터들을 이용하여 재생됩니다.

    코덱과 함께 제공되는 SDK 를 제공하여 손쉽게 오디오 플레이어를 개발할 수 있습니다.



1. 오디오 파일 종류

   Directshow 기반 오디오 Demux 필터를 개발하여 다양한 오디오 파일을 지원하며,

   무손실 음원을 포함한 FLAC, WAV, APE, WMA 파일을 재생할 수 있습니다.

    - MP3, MP2, WMA(ASF), OGG, M4A, MP4, MPC 파일

    - FLAC, WAV, APE, MKA 파일

 

2. 오디오 코덱 종류

   Directshow 기반 오디오 Decoder 필터를 개발하여 오디오와 비디오 파일 재생 시,

   다양한 오디오 코덱을 지원합니다.

   - AC3, MPEG-1 Layer 1/2/3(MP3), Vorbis, FLAC, ADPCM, WMA 7/8/9/10 코덱

   - Speex, PCM, AAC, Monkey's Audio, DTS, OPUS

   - 최대 192kHz(Sample Rate) 지원

   - 최대 32 bps(bit per sample) 지원

   - 최대 7.1 channels 지원( 2ch down mixing) 

   - AC3와 DTS 코덱은 별도의 라이센스 계약이 필요합니다.

 

3. 오디오 플레이어를 위한 기능

    오디오 플레이어 SDK를 이용하여 다음의 기능을 구현 가능합니다.

    - 배속 조절 기능 : 50% ~ 200% (피치 보정)

    - Surround Effect 지원

    - Voice Remove Effect 지원

    - 128 band Real Time Spectrum Visualization 지원

    - 512 PCM Sample Waveform Visualization 지원

    - LRC 가사 파일 지원

    - TAG 지원(ID3 Tag, APE Tag, FLAC Tag)

    - 앨범아트(AlbumArt) 지원

 

*비디오 플레이어 관련 코덱

   비디오 파일은 다음 그림의 필터들을 이용하여 재생됩니다.

    코덱과 함께 제공되는 SDK 를 제공하여 손쉽게 비디오 플레이어를 개발할 수 있습니다.

 

1. 비디오 파일 종류 :

     Directshow 기반 비디오 Demux 필터를 개발하여 다양한 코덱 조합의 비디오 재생을 지원합니다.

      - AVI, WMV(ASF), MKV, MP4(3GP), MPV 파일

     - MPEG, TS, TP, OGM(OGV), VOB, FLV, MOV, WebM 파일

 

2. 비디오 코덱 종류 및 비디오 렌더러 필터 :

    i.MX6 CPU의 하드웨어 비디오 가속기(VPU)를 이용한 Directshow 기반 비디오 Decoder 필터와

    하드웨어 이미지 가속기(IPU)를 이용한 비디오 Renderer 필터를 개발하여

    고성능의 비디오 재생을 지원합니다.

     - 하드웨어 가속 지원 : H.264(AVC), MPEG4, Divx, Xvid, MPEG2, WMV9(VC-1), VP8, MJPEG

    - 소프트웨어 코덱 : H.265(HEVC), VP9, Divx3, WMV7/8

    - 비디오 렌더러 필터 :하드웨어 이미지 가속기(IPU) 이용     

     - 최대 해상도 : 1920x1080(Full HD)

     - 최대 FPS(Frame per sec) : 60 FPS

     - 최대 Bitrate : 30Mbps

 

3. 자막 지원 :

     - 자막 파일 : SMI, SRT 파일

     - 비디오 파일 내 자막 지원 : MKV, MP4

 

4. 비디오 플레이어를 위한 기능 :

      비디오 플레이어 SDK를 이용하여 다음의 기능을 구현 가능합니다.

     - 컬러키(Colorkey, Chroma key) 지원

     - 비디오 출력 크기, 위치 조절 기능 지원

     - 밝기(Brightness), 대비(Contrast) 조절 기능 지원

     - 자막 싱크 조절

     - 자막 표시(위치, 크기, 컬러, 정렬 방식) 조절

     - 오디오 EQ 지원

     - 배속 조절 : 50% ~ 200%(피치 보정)

     - 멀티 오디오 트랙 지원

     - 멀티 언어 자막 지원

 

 

*카메라 프로그램 관련 코덱

   카메라 프로그램은 다음 그림의 필터들을 이용하여 구현됩니다.

    코덱과 함께 제공되는 SDK 를 제공하여 손쉽게 카메라 프로그램를 개발할 수 있습니다.

 

 

1. 오디오 인코딩 코덱 지원 :

    오디오 녹음을 위한 오디오 Encoder 필터와 Mux 필터를 개발하여

    카메라 프로그램과 오디오 녹음 프로그램에서 사용할 수 있습니다.

    - 오디오 인코딩 코덱 : PCM, MPEG1-Layer 3(MP3), AAC, G.729

   - 오디오 녹음 파일 포멧 : WAV, MP3, M4A, MP4

   - 최대 192kHz(Sample Rate) 지원

    - 최대 16 bps(bit per sample) 지원

    - 최대 2 channels 지원

 

2. 비디오 인코딩 코덱 지원

     i.MX6 CPU의 하드웨어 비디오 가속기(VPU)를 이용한 Directshow 기반 비디오 Encoder 필터를

     개발하여 고화질의 영상을 녹화 할 수 있습니다.

     또한 Mux 필터를 통해 MP4, AVI, MKV로 저장할 수 있습니다.

    - 비디오 인코딩 코덱 : H.264, MPEG4, MJPEG

    - 비디오 녹화 파일 포멧 : MP4, AVI, MKV

     - 최대 해상도 : 1920x1080(Full HD)

     - 최대 FPS(Frame per sec) : 30 FPS

     - 최대 Bitrate : 20Mbps

 

3. 카메라 프로그램을 위한 기능 :

  카메라 프로그램 SDK를 이용하여 다음의 기능을 구현 가능합니다.

    - 카메라 영상 포멧 설정 기능 : 해상도, FPS, 포멧 지정 가능

    - 오디오 입력 포멧 설정 기능

    - Still 이미지 캡처 기능

    - 저장 경로 지정 기능

    - 녹화 파일 Bitrate 지정 기능 

 

*네트워크 Protocol 지원

  FTP를 포함한 다양한 네트워크 Protocol을 지원합니다. 

  코덱과 함께 제공되는 SDK 를 이용하면 네트워크 Protocol를 쉽게 구현할 수 있습니다.

 

 

1. 네트워크 Protocol 종류

    로컬 파일의 재생 뿐만 아니라 네트워크 상의 파일 재생도 지원하며, 네트워크를 이용한 스트리밍도 지원합니다.

    -FTP 파일 재생/녹화 : FTP 서버에 있는 미디어 파일을 재생하거나 서버에 저장할 수 있습니다.

    -UDP, RTSP, RTMP, HTTP

 

 

Directshow 기반 코덱과 함께 관련 SDK 를 제공하여 플레이어와 카메라 프로그램을 쉽게

구현할 수 있으며, C/C++ 뿐만 아니라 C#으로 개발할 수 있습니다.

또한 오디오와 비디오 플레이어, 카메라 프로그램 소스 코드를 제공하고 있습니다.

 

Directshow 기반 i.MX6 CPU 용 코덱에 대한

자세한 문의나 데모 프로그램 요청은 help@wearedev.net 으로 해 주시면

빠른 시일 내로 답변 드리도록 하겠습니다.

 

i.MX6 CPU 외에 i.MX51, i.MX53, i.MX8 CPU 관련 코덱에 대해 문의 주셔도 됩니다.

추가로 Android 또는 Linux 운영체제용 코덱이 필요하시거나

커스텀화 개발이 필요하실 경우 연락 주시면 답변 드리겠습니다.

코덱이 궁금하시면 help@wearedev.net 으로 부담없이 메일 주세요.

 

다음 영상은 WAD-MX6W 보드에서 H.264, 1080P, MP4 파일 재생

테스트 영상입니다.  

 

다음 영상은 WAD-MX6 보드에서 mp3 재생 시, 128 band Realtime spectrum을 구현한

것입니다.

다음 영상은 LVDS 2ch 출력을 이용하여 15인치 LCD에 1920x1080 해상도를 구현하고

H.264, 1080P 영상을 재생 테스트 한 것입니다.

 

 

다음 영상은 HDMI to MIPI Module 을 이용하여 1920x1080P 영상을 입력 받아

화면에 출력하는 동영상입니다. Preview와 동시에 비디오 인코딩을 녹화가 가능합니다.

 

 

 *제한 사항
  - 파일 구조 및 스트림이 정상적인 미디어 파일에 한해서만 재생을 지원합니다. 
  - 지원 가능한 오디오 코덱과 비디오 코덱으로 구성된 비디오 파일만 재생이 가능합니다. 
  - 일부 코덱의 경우 라이센스가 필요할 수 있습니다. 
  - 높은 Bitrate의 동영상 파일의 경우, 저장 장치의 속도에 따라 원할히 재생이 되지 않을 수 있습니다. 
  - 미디어 파일에 따라 배속 조절 시, 원할히 재생 되지 않을 수 있습니다. 
  - 플랫폼의 자원(CPU, 가용 메모리 용량, Etc.)에 따라 재생이 제한 될 수 있습니다.

  - 코덱에 따라 재생 가능한 사양이 다를 수 있습니다.

Outcomes