AAC 기본 정리
--------------------------------------------------------------------------------------
AAC PROGRAMS
--------------------------------------------------------------------------------------
AAC (MPEG2-AAC)는 가장 작은 파일크기/비트율로 highest audio quality를 위해 설계된 인코딩 구조이다. AAC는 복잡한 인코딩 알고리즘을 사용하고, 97년 12월에 소스코드가 처음으로 릴리즈된 후에 개선되고있다.
지금까지 AAC의 다양한 버전이 있었고, 상당히 혼동된다. 내가 생각하기에 ISO-compliance가 AAC 개발에서 공통적인 플랫폼을 확립하는데 주요 요소같다. legan AAC 인코더는 Dolby에서 라이센스를 얻는데, Liquifier 등이 현재 라이센스를 얻었다.
--------------------------------------------------------------------------------------
HOMEBOY AAC. (ISO compliant - lo quality)
--------------------------------------------------------------------------------------
첫번째로 발표한 AAC 인코더는 Homeboy AAC다.
좋은 음질은 제공하지 못하고, 빠르지도 않았다(느렸다).
그 당시에는 AAC 플레이어도 없었다. 난감했다.
그러나, BitAAC가 AAC파일을 재생했을때, Winamp PLUG-IN이 가능해졌다.
homeboy aacenc - 128 kbps
--------------------------------------------------------------------------------------
PsyTEL AAC
--------------------------------------------------------------------------------------
PsyTEL AAC. (ISO compliant - lo quality)
Psytel AAC는 Homeboy AAC와 상당히 유사하다. 그러나 좀 더 나은 음질을 제공한다.
인코딩 속도는 느리고, Homeboy와 같이 "dummy" 모듈을 사용하는데, low sound quality를 제공한다.
AAC 인코더는 개발을 더이상 하지 않는다.
psytel aacenc - 128 kbps
--------------------------------------------------------------------------------------
ASTRID/QUARTEX AAC. (non ISO-compliant - better quality)
--------------------------------------------------------------------------------------
98년 10월에 릴리즈되었다.
TwinVQ를 창시한 NTT에서 AAC/MP4 소스를 기반으로 했다.
음질은 상당히 좋지만, 여전히 속도는 느렸다.
Kjofol 04/05는 이런 AAC 파일(non ISO-compliant)만을 재생하는 플레이어가있었다.
98년 12월에 개발이 중지되었다.
Astrid 02는 18kHz에 대응하는 좋은 frequeny를 가지고읻사.
astrid/quartex 02 - 128 kbps
--------------------------------------------------------------------------------------
K+K AAC. New AAC PROJECT (ISO-compliant - high quality)
--------------------------------------------------------------------------------------
high-quality AAC 소프트웨어 패키지이다.
Astrid/Quartex보다 더 음질이 좋은 ISO-compliant AAC encoder이다.
AAC 디코더를 가지고있고, Winamp Plug-in도 있었다. 모든 AAC 프로파일이 제공되었고(Main, LC, SSR), 20kHz이상의 매우 좋은 frequency를 가지고있었다.
128 kbps 에서 AAC 경우 듣기 테스트에서 Liquifier Pro(with Fraunhofer AAC) 보다 다소 좋다.
K+K AAC 10 - 128 kbps
--------------------------------------------------------------------------------------
LIQUIFIER PRO. (Non ISO-compliant - high quality)
--------------------------------------------------------------------------------------
Liquid Audio는 Liquifier Pro4.0에서 AAC (와 Dolby AC3) 기술을 사용한다.
전체적으로 최적화된 AAC 인코딩 Liquifier는 "the real thing" 이지만
K+K AAC가 더 나은 음질이였다.
--------------------------------------------------------------------------------
AAC TECHNOLOGY
--------------------------------------------------------------------------------
MPEG-2 AAC(Advanced Audio Coding)은 perceptual 오디오 코딩에서 가장 최근 MPEG 표준이다.
AAC는 MPEG audio Layers 1, 2, 3과 호환되지 않는다. AAC를 NBC(Non Backwards Compatable)이라고 하는 이유이다.
AAC 프로파일 :
-Main
-Low Complexity (LC)
-Scaleable Sampling Rate (SSR)
Main 프로파일은 3가지 프로파일중에서 가장 좋은 음질을 제공하고 모든 툴을 포함한다. LC(low complexity) 프로파일은 제한된 예측없는 Temporal Noise Shaping 툴을 포함한다. 이것은 몇몇 특별한 오디오 신호에서 음질을 줄이지만, 인코딩과 특히 디코딩에서 복잡도를 세이브한다. SSR(Scaleable Sampling Rate) 프로파일은 다른 filterbank와 특별한 gain 제어툴을 가진 낮은 복잡도 프로파일이다.
AAC는 8kHz와 96kHz사이의 샘플링 프리퀀시와 1에서 48사이의 채널수를 가지고있고, 오디오와 시네마 섹터에서 미래의 개발을 위해 준비되었다.
AAC는 이런 기술을 사용한다.
-Huffman Coding
-Quantization and scaling
-M/S Matrixing
-Intensity Stereo
-Coupling Channel
-Backward adaptive prediction
-Temporal noise shaping (TNS)
-Modified discrete cosine transform (IMDCT)
-Gain control and hybrid filter bank (polyphase quadrature filter + IMDCT)
AAC Main 128은 MP2-192 혹은 MP3-128보다 더 좋은 성능을 제공한다. 추가적으로 AAC Main 96은 MP3 128보다 더좋은 성능을 제공한다.
압축률은 MPEG layer2와 비교해서 2배정도로 좋고, MPEG Layer3(MP3)와 비교해서 1.4배 좋다. MP3와 비교해서 비트율의 70%에서 같은 음질을 가진다는 의미이다.
<출처 : http://www.beckgom.com/entry/AAC-기본정리>
MPEG Advanced Audio Coding (AAC) 기술은 MP3 부호화 기술을 대체하기 위해 설계되었습니다. MPEG AAC low complexity (AAC-LC) 프로파일은 AAC 프로파일들 중에서 가장 단순하고 가장 널리 사용됩니다. AAC-LC는 MP3보다 50%까지 성능 개선할 수 있고 가장 효율적인 오디오 압축 기술중의 하나입니다. 디코더는 MPEG2/4 AAC-LC 디코더를 ARM 프로세서에서 구현된 소프트웨어 라이브러리입니다. 이 소프트웨어 라이브러리는 응용 프로그램을 쉽게 개발할 수 있도록 낮은 복잡도, 낮은 메모리 사용량 및 간편한 소프트웨어 API을 제공합니다.
지원되는 비트스트림 특성
- 호환성
- ISO/IEC 13818-7 MPEG2 AAC LC 프로파일
- ISO/IEC 14496-3 Subpart 4 MPEG-4 AAC LC 프로파일
- 샘플링 주파수 (KHz) : 8, 11.025, 12, 16, 22.05, 24, 32, 44.1, 48
- 비트율 : ~ 288Kbps @ 48KHz stereo
- 비트율 모드 : CBR/ABR/VBR
- 프레임의 크기 : 1024 샘플
- 채널 수: 모노(1ch)/스테레오(2ch)
- 파일 포맷 : ADIF, ADTS, RAW
- 지원 툴 : MS/IS/TNS/PNS
지원되는 소프트웨어 특성
재진입이 가능한(reentrant) 코드. 다중스레드(multithread)와 동적인 메모리 할당.
- 지원되는 라이브러리 포맷
- ADS 1.2
- RealView 4.0
- WinCE (Embedded Visual C)
- Android
- iOS
- Data 메모리 : 실시간으로 할당 가능
- API : C에서 호출이 가능한 API
디코더 성능 및 메모리 사양 (ARM9E 기준)
- 복잡도 : 13 MHz
- Code ROM : 39 KB
- Constant Data ROM : 38 KB
- 복원된 Decoder의 품질 :
- ISO/IEC 14496-4를 이용해서 호환성 테스트
- SNR = 84dB, RMS <= 1.19x10(-5)
01. AAC는 어떤 목적으로 개발이 되었나요?
AAC(Advanced Audio Coding) 의 약자로써 MP3를 대중화시키고 개발까지한 프라운호퍼의 MP3를 개선을 한 버전이라고 생각하시면 쉬우며 AT&T 벨 연구소, 프라운호퍼, 돌비 연구소, 소니 등 기업에서 공동으로 개발을 하였습니다.
02. AAC는 MP3보다 무엇이 더 나아졌나요?
- 샘플 주파수의 확장
(MP3에서는 8Khz ~ 48Khz까지였으나 8Khz ~ 96Khz로 확장) 보통 MP3의 흔히 쓰이는 샘플주파수는 44Khz 입니다. - 최대 48채널로 확장
(MPEG-1 모드에서는 2채널, MPEG-2 모드에서는 5.1채널이 최대) - 고정 비트레이트에서도 필요에 따라서 비트를 가변적으로 할당한다.
- 조인트 스테레오가 더욱 유용해졌다. 그리하여 저 비트레이트에서 음이 뭉개지는 현상을 개선하였다.
- 알고리즘을 하이브리드(Hybrid) 형식에서 수정 이산 코사인 변환(Pure MDCT) 형식으로 바꾸어서 더욱 효율적인 인코딩이 가능해졌다.
※ 출처 : 위키디피아
이외 최대 비트레이트도 MP3보다 늘어났습니다. MP3 320k AAC 500k
또한 AAC와 MP3의 용량을 비교하였더니 (CBR 320k , Joint stereo)
MP3는 5,158KB AAC 5,184KB
약 26KB 정도가 차이가 납니다.
03. AAC는 대체적으로 어디에 쓰이나요?
AAC는 여러분이 아는것보다 꽤나 많이 이용이 되고있습니다
애플의 아이팟 , 아이폰 , 아이패드 소니 플레이스테이션 3 , PSP , 워크맨 마이크로소프트 Zune 샌디스크 Sansa 닌텐도 DSi , 3DS 소니 에릭슨 엑스페리아 블랙베리 일본 DMB (1seg)
일본 원세그 처럼 강제적으로 들리는것이 아닌 MP3도 들을 수 있기때문에 대체적으로는 mp3를 쓰게 됩니다.
03. AAC의 장점은 무엇인가요?
한마디로 말하자면 "MP3보다 기능이 개선이 많이 되었지만 용량은 큰 차이가 없다." 입니다.
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%이상 더 개선할 수 있습니다. 나선 랩스는MPEG HE-AAC 디코더를 ARM 프로세서에서 구현되었습니다. 이 소프트웨어 라이브러리는 응용 프로그램을 쉽게 개발할 수 있도록 낮은 복잡도, 낮은 메모리 사용량 및 간편한 소프트웨어 API를 제공합니다.
MPEG-4 HE AAC v2 프로파일의 일부가 DAB+용 오디오 압축 표준으로 채택되었습니다. 하지만 한 프레임의 길이가 그 동안 주로 사용되던 1024샘플에서 960 샘플로 변경되었습니다. 따라서 기존에 사용된 HE AAC V2 Decoder를 변경된 규격에 맞게 최적화가 필요합니다.
나선 랩스의 디코더는 MPEG HE-AAC 디코더를 DAB+ 규격에 맞게 ARM 프로세서에서 구현되었습니다. 이 소프트웨어 라이브러리는 응용 프로그램을 쉽게 개발할 수 있도록 낮은 복잡도, 낮은 메모리 사용량 및 간편한 소프트웨어 API를 제공합니다.