IT_etc/유용한 전산 지식들..

[펌] Audio Codecs

JJun ™ 2015. 10. 19. 15:15



 출처: http://www.nahsun.com/index.php/technology/audio-codec




HE AAC (V2)

MPEG High Efficiency-AAC (HE-AAC) 표준은 가장 효율적으로 Advanced Audio Coding Low Complexity (AAC-LC) 프로파일과 Spectral Band Replication(SBR) 부호화 기술이 결합된 것입니다. HE-AAC V2는 HE AAC 기술에 Parametric Stereo 기술을 적용하여 기존의 HE AAC와 하위 호환성을 유지하면 음질을 개선할 수 있습니다.  MPEG HE-AAC는 ‘AAC+’라고, HE-AAC V2는 eAAC+라고도 불리며 DAB+, T-DMB, S-DMB 및 DVB-H와 같은 분야의 오디오 표준으로 채택되었습니다. AAC-LC의 부호화 효율을 적어도 30%이상 더 개선할 수 있습니다. 나선(nahsun)은 MPEG HE-AAC 디코더를 ARM 프로세서에서 최적화하였습니다. 이 소프트웨어 라이브러리는 응용 프로그램을 쉽게 개발할 수 있도록 낮은 복잡도, 낮은 메모리 사용량 및 간편한 소프트웨어 API를 제공합니다.



지원 비트스트림 특성

  • 호환성
    • ISO/IEC MPEG2 AAC LC 프로파일
    • ISO/IEC 14496-3 HE AAC (v2) 프로파일
  • 샘플링 주파수 (KHz) : 16, 22.05, 24, 32, 44.1, 48
  • 비트율 : ~ 288Kbps @ 48KHz stereo
  • 비트율 모드 : CBR/ABR/VBR
  • 프레임의 크기 : 1024 샘플
  • 채널 모노(1ch)/스테레오(2ch)
  • 파일 포맷 : ADIF, ADTS, RAW
  • 지원  : MS/IS/TNS/PNS/SBR/Parametric Stereo

지원 소프트웨어 특성

  • 재진입이 가능한(reentrant) 코드. 다중스레드(multithread)와 동적인 메모리 할당.
  • 지원되는 라이브러리 포맷
    • ADS 1.2
    • RealView 4.0
    • WinCE (Embedded Visual C)
    • Android
    • iOS
  • Data 메모리 : 실시간으로 할당 가능
  • API : C에서 호출이 가능한 API

디코더 성능 및 메모리 사양 (ARM9E 기준)

  • 복잡도 : 24MHz (HE AAC) 34MHz(HE AAC V2)
  • Code ROM : 78 KB(HE AAC) 96 KB(HE AAC V2)
  • Constant Data ROM : 107 KB(HE AAC) 122KB(HE AAC V2)
  • 복원된 Decoder 품질 :
    • ISO/IEC 14496-4 이용해서 호환성 테스트

Bluetooth용 SBC

Bluetooth Subband codec(SBC)는 적절한 비트율에서 고품질의 오디오 전송을 위해 설계된 낮은 복잡도의 오디오 부호화 기술입니다. SBC 표준은 4개의 subband나 8개의 subband, 적응형 비트할당 알고리듬 및 단순한 적응 블럭 PCM 양자화기등을 사용합니다.

나선(nahsun)의 SBC codec은 무선 오디오를 위해 정해진 유일한 코덱인 Bluetooth Advanced Audio Distribution Profile(A2DP) 규격에 맞게 구현되었습니다.



지원 비트스트림 특성

  • 호환성
    • Bluetooth Advanced Audio Distribution Profile(A2DP)
  • 샘플링 주파수 (KHz) :  32, 44.1, 48
  • 비트율 :  ~ 345Kbps @ 48KHz Stereo
  • 비트율 모드 : CBR/VBR

지원 소프트웨어 특성

  • 재진입이 가능한(reentrant) 코드. 다중스레드(multithread)와 동적인 메모리 할당.
  • 지원되는 라이브러리 포맷
    • ADS 1.2
    • RealView 4.0
    • WinCE (Embedded Visual C)
    • Android
    • iOS
  • Data 메모리 : 실시간으로 할당 가능
  • API : C에서 호출이 가능한 API

디코더 성능 및 메모리 사양 (ARM9E 기준)

  • 복잡도 : 6.5MHz (디코더) 10.5MHz(인코더)
  • Code ROM : 10 KB(디코더) 8 KB(인코더)
  • Constant Data ROM : 0.8 KB(디코더) 2KB(인코더)

 

DAB+용 HE AAC (V2)

MPEG-4 HE AAC v2 프로파일의 일부가 DAB+용 오디오 압축 표준으로 채택되었습니다. 하지만 한 프레임의 길이가 그 동안 주로 사용되던 1024샘플에서 960 샘플로 변경되었습니다. 따라서 기존에 사용된 HE AAC V2 Decoder를 변경된 규격에 맞게 최적화가 필요합니다.

나선(nahsun)의 디코더는 MPEG HE-AAC 디코더를 DAB+ 규격에 맞게 ARM 프로세서에서 구현되었습니다. 이 소프트웨어 라이브러리는 응용 프로그램을 쉽게 개발할 수 있도록 낮은 복잡도, 낮은 메모리 사용량 및 간편한 소프트웨어 API를 제공합니다.



지원되는 비트스트림 특성

  • 호환성
    • ISO/IEC MPEG2 AAC LC 프로파일
    • ISO/IEC 14496-3 HE AAC (v2) 프로파일
    • ETSI TS 102 563 (DAB+ 표준안)
  • 샘플링 주파수 (KHz) : 32, 48
  • 비트율 : ~ 288Kbps @ 48KHz stereo
  • 비트율 모드 : CBR/ABR/VBR
  • 프레임의 크기 :  960 샘플
  • 채널 모노(1ch)/스테레오(2ch)
  • 파일 포맷 : ADIF, ADTS, RAW
  • 지원  : MS/IS/TNS/PNS/SBR/Parametric Stereo

지원되는 소프트웨어 특성

  • 재진입이 가능한(reentrant) 코드. 다중스레드(multithread)와 동적인 메모리 할당.
  • 지원되는 라이브러리 포맷
    • ADS 1.2
    • RealView 4.0
    • WinCE (Embedded Visual C)
    • Android
    • iOS
  • Data 메모리 : 실시간으로 할당 가능
  • API : C에서 호출이 가능한 API

디코더 성능 및 메모리 사양 (ARM9E 기준)

  • 복잡도 : 25.5MHz (HE AAC) 35.5MHz(HE AAC V2)
  • Code ROM : 78 KB(HE AAC) 96 KB(HE AAC V2)
  • Constant Data ROM : 107 KB(HE AAC) 122KB(HE AAC V2)
  • 복원된 Decoder 품질 :
    • ISO/IEC 14496-4 이용해서 호환성 테스트

BSAC

BSAC는 AAC와 동일한 압축률과 fine-grain scalability를 제공하는 인기있는 MPEG-4 표준 기술입니다. BSAC 기술은 지상파 DMB의 오디오 기술로써 선정되어서 실용화되었습니다. BSAC의 비트스트림은 하나의 기본 계층과 여러 개의 개선 계층으로 구성되어 있습니다. BSAC는 무손실 부호화 방식으로 MPEG-4 AAC에 사용되는 허프만 부호화 대신에 산술부호화 방식을 사용합니다. BSAC는 16kbps/ch에서 64kbps/ch의 범위에서 동작합니다.

나선(nahsun)의 BSAC 디코더는 MPEG-4 BSAC 및 지상파 DMB(Terrestrial DMB)에 최적화되어 구성되어 있습니다. BSAC Decoder는 MPEG-4 Audio중 오디오 object type ER BSAC의 payload인 bsac_raw_data_block()을 지원합니다.



지원 비트스트림 특성

  • 호환성
    • ISO/IEC 14496-3 Subpart 4 MPEG-4 오디오 중 오디오 object type ER BSAC
  • 샘플링 주파수 (KHz) : 8, 11.025, 12, 16, 22.05, 24, 32, 44.1, 48
  • 비트율 : ~ 288Kbps @ 48KHz stereo
  • 비트율 모드 : CBR/ABR/VBR
  • 프레임의 크기 : 1024 샘플
  • 채널 모노(1ch)/스테레오(2ch)
  • 파일 포맷 : RAW(bsac_raw_data_block())
  • 지원  : MS/IS/TNS/PNS

지원 소프트웨어 특성

  • 재진입이 가능한(reentrant) 코드. 다중스레드(multithread)와 동적인 메모리 할당.
  • 지원되는 라이브러리 포맷
    • ADS 1.2
    • RealView 4.0
    • WinCE (Embedded Visual C)
    • Android
    • iOS
  • Data 메모리 : 실시간으로 할당 가능
  • API : C에서 호출이 가능한 API

디코더 성능 및 메모리 사양 (ARM9E 기준)

  • 복잡도 : 16MHz
  • Code ROM : 43 KB
  • Constant Data ROM : 38 KB
  • RAM : 50 KB
  • 복원된 Decoder 품질 :
    • ISO/IEC 14496-4 이용해서 호환성 테스트