출처: 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를 이용해서 호환성 테스트