AAC

Advanced Audio Coding. '고급 오디오 부호화'라고도 한다.절대로 Apple Audio Codec이 아니다!!(3번 참조)

1 개요

MP3를 대중화시키고 개발까지 한 프라운호퍼의 MP3 코덱을 개선하기 위해 MPEG(위원회)와 AT&T 벨 연구소, 프라운호퍼, 돌비 연구소, 소니 등 기업에서 공동으로 개발한 오디오 코덱이라지만...

사실은 MPEG-1의 일부로서 개발된 MP1, MP2, MP3 코덱에 적용되지 못했던 새로운 압축기술들이 적용되었기 때문에 구조적으로 MP3 포맷과 너무 많이 다르다. 따라서 MP3 포맷에 관한 하위 호환성이 없다. 대신 MP3 포맷보다 압축 효율성이 높아졌다.
아래에 있는 이미지는 AAC 계열에 속한 포맷들의 관계를 벤다이어그램으로 표현한 것이다. (영문판 위키백과의 HE-AAC 항목 참조)

300px-HE-AAC_and_HE-AAC_v2.svg.png

AAC 포맷은 MPEG-2 Part.2와 MPEG-4 Part.2 규격에 둘다 포함되어 있으며 MPEG-2 Part.2의 AAC는 일반적으로 흔히 알려진 그 AAC이고, MPEG-4 Part.2의 AAC는 고효율(High-Efficiency) 고급 오디오 부호화를 뜻하는 HE-AAC 등의 여러 포맷들이 포함되어 있다. 그렇기 때문에 용도에 따른 압축 모드에 따라 LC, HC, AVC HC 등이 명시되어 있던 것. MP3 플레이어에서 AAC를 지원한다는 것은 대부분 AAC Profile을 가리키는 것. 압축 효율성은 프로필에 따라서 WMAOGG(Vorbis) 사이 또는 OGG 수준에 있다고 보면 된다. 현재 제일 많이 쓰이는 AAC류의 압축 포맷인 apple 코덱의 압축률은 VBR에서 OGG보다 비슷 하거나 약간 밀리는 정도이며, CBR의 경우 OGG가 취약한 부분이기 때문에 AAC가 상대적으로 앞선다.
개선점으로는 다음과 같다.

  • 샘플 주파수의 확장 (MP3에서는 8kHz ~ 48kHz까지였으나 8kHz ~ 96kHz로 확장)
  • 최대 48채널로 확장 (MPEG-1 모드에서는 2채널, MPEG-2 모드에서는 5.1채널이 최대)
  • 고정 비트레이트에서도 필요에 따라서 비트를 가변적으로 할당한다.
  • 조인트 스테레오가 더욱 유용해졌다. 그리하여 저 비트레이트에서 음이 뭉개지는 현상을 개선하였다.또한 저 비트레이트에서의 음 손실이 많이 줄었다.
  • 알고리즘을 하이브리드(Hybrid) 형식에서 수정 이산 코사인 변환(Pure MDCT) 형식으로 바꾸어서 더욱 효율적인 인코딩이 가능해졌다.

이외에도 AAC는 기존 MP3가 가지던 문제의 대부분을 획기적으로 개선했으며, 특히 HE-AAC에서는 저 비트레이트에서도 음역 보존률이 아주 좋다. HE-AAC는 기존 AAC의 확장 프로필이며, 스트리밍 오디오와 같은 낮은 비트레이트 애플리케이션에 최적화되었다. ("It is an extension of Low Complexity AAC (AAC LC) optimized for low-bitrate applications such as streaming audio." [1]) 고효율 고급 오디오 부호화 버전1(HE-AAC v1)은 스펙트럼 대역 복제(Spectral band replication, SBR)를 사용하여 주파수 영역(frequency domain)에서 압축 효율을 향상시킨 버전이고, 고효율 고급 오디오 부호화 버전2(HE-AAC v2)는 스펙트럼 대역 복제와 파라메트릭 스테레오(PS)가 한 쌍을 이루어 스테레오 신호의 압축 효율을 향상시킨 버전이다. 참고로 초기에는 HE-AAC를 AACplus라고 불렀다. "It is a standardized and improved version of the AACplus codec." [1]
다만 SBR의 특성상 고주파 껍데기는 잘 따라가지만 하모닉스와 같은 표현에는 쥐약이라는 반론이 있고 압축하기 어려운 음원의 경우 블라인드 테스트에서 좋지 못한 결과를 보였다. 다시 말해, 단순히 스펙트럼으로 떠드는 것은 손실 압축 포맷 특유의 아티펙트(artifact) 현상을 간과하는 처사일 수 있다. 하지만 매우 저 비트레이트[2]에서 그나마 괜찮은 음질을 추구해야 되는 상황에서는 HE-AAC가 최선일 수도 있다. 위에 위키백과에서 가져온 정의만 잘 생각해 봐도, 애초에 FLAC같은 무손실 원본과의 변별 불가능한 음질을 위해 만든 물건이 아니다. 물론 요즘은 저장용량 대용량화 등으로 굳이 HE-AAC가 유효할 정도로 저 비트레이트를 써야 되는 상황 자체가 줄어든 데다가, Opus라는 괴물이 나와서 이걸 쓸 수 있는 상황이라면 이놈과도 비교해 봐야 된다는 변수가 추가되었지만 인코더에 따라서 특정 비트레이트 이하에서는 HE-AAC를, 그 이상에서는 AAC를 자동으로 선택해 주는 경우도 있다.

입체 음향 관련 규격이자 가장 최근 표준화된 MPEG Surround 에서도 baseline으로 AAC가 기본적으로 사용될 수 있다.

최대 비트레이트도 MP3보다 늘어났는데 MP3는 320k까지인 반면 AAC는 500k까지 늘어났다. [3]

참고글

2 용도

H.264로 인코딩된 인터넷 스트리밍 동영상(대표적으로 유튜브, 네이버 동영상) 및 MP4 동영상 파일의 대부분이 이 오디오 코덱이 쓰이는 경우가 많다. 동영상 스트리밍 외에도 멜론 등 음원 스트리밍 서비스에서도 기본값으로 AAC를 지원한다.

2010년경 이후 영국 BBC, 미국 NPR의 일부 회원국 등 외국의 주요 라디오 방송국에서 스트리밍 오디오용 코덱으로 많이 쓰이고 있다. 외국 방송국의 음악채널, 특히 좀 유명하다 싶은 클래식 음악 채널은 아예 인터넷 스트리밍이 AAC가 기본값. 특히 충격과 공포BBC Radio 3 320 kbps AAC 스트리밍. 한국에선 64 kbps WMA도 외부링크 따는 걸 꽁꽁 막아놓고 쓰는 데 네트워크 장비값을 어떻게 감당하려고... 한국에서도 스트리밍 방송에 오디오 코덱으로 쓰이는 데가 늘고 있다. 일본의 온라인 라디오 스트리밍 서비스인 '라디코'도 HE AAC 48kbps로 서비스된다.

구형 DAB가 아닌 신형 DAB+ 디지털 라디오 방송에도 쓰인다. 한국의 DMB 오디오부의 코덱은 이 포맷의 변형인 BSAC 코덱이 사용된다. 그러나 BSAC는 오디오부 코덱치고는 매우 안좋은 코덱에 속한다. Opus같은 코덱으로의 빠른 교체가 시급해 보인다. 일본과 남미에서 쓰이는 원세그도 AAC 코덱이 쓰인다.

안드로이드 OS가 탑재된 대부분의 스마트폰에서 기본으로 재생지원하고는 있으나, 국내의 음원 다운로드 서비스는 대부분 손실음원이 MP3 방식이라서 대중성이 많이 떨어지는 상황. 간단하게 말해 대부분의 AAC 이용자는 MP3보다 용량대 음질비가 좋다고 알려졌으니까 쓴다. 요즘은 애플에서 256Kbps VBR(MP3 320Kbps를 살짝 상회하는 음질.)을 기본 비트레이트로 삼았는데 음질관련 불만은 사실상 없기 때문에 사용자가 늘어나고는 있다. 다만 애플 관련 제품에서는 사실상 손실음원의 표준으로 자리잡아 반강요되는 포맷이다. 특히 iTunes Store와 여기에 기반한 iTunes Match의 포맷이 AAC이고 아이튠즈의 기본 CD 립핑 옵션이 AAC라서 아이튠즈를 쓰고 있다면 알게 모르게 많이 가지고 있을 것이다. 기본값은 iTunes Plus라고 해서 모노 128 kbps, 스테레오 256 kbps AAC이다.

닌텐도의 경우 닌텐도 DSi와, 닌텐도 DSi LL, Wii에서 SD카드에 넣은 음악을 플레이할 때 사용한다.

블루투스 A2DP 코덱으로도 쓰이고있다. APT-X와 비슷하게 음질이 좋은 편이나 latency는 긴 편이다[4]. AAC파일을 들을때는 bypass도 가능.

AAC는 인코더의 문제가 상당히 큰데, 대충 이런 우열관계가 나온다.

Apple AAC > Fraunhofer FDK Encoder > NeroAACEnc > LAME MP3 > FAAC > FFmpeg[5]
출처1 출처2-1 출처2-2. 포스트 작성 시기가 2011년인 만큼 어디까지나 참고용이다
이랬으나 2015년 12월 FFmpeg 내장 AAC인코더가 대폭 개선되면서 FDK와 비슷하거나 좀 더 나아졌다고 한다. 대신 인코딩 속도는 더 느리다고.

특히 FFmpeg에 내장된 FAAC 등의 AAC는 오히려 MP3보다 더 성능이 떨어진다.사실 MP2 보다도 못하다는게 함정 유튜브나 각종 동영상 제공 업체들이 보통 FFmpeg 기반으로 인코딩해서 서버에 저장하는데, 실제로 이렇게 사용되는 내장 AAC는 LAME MP3보다도 성능이 더 떨어진다. 아 그래서 유튜브에서 나오는 음원의 음질이... 유투브의 경우 HTML5 도입과 맞물리는 시기부터 WebM과 VP9 코덱을 밀어주면서 오디오 파트도 Vorbis가 사용되니, 유투브 AAC음질이 불만이라면 WebM으로 보는 것이 대안이 될 수 있다. 현재 방법은 크롬(웹 브라우저)#s-2.5.5을 쓰는 방법, 그리고 모질라 파이어폭스에서 아직 개발이 덜 되어서 기본값이 비활성화 되어 있는 WebM 지원을 강제로 켜는 방법이 있다. 자세한 건 항목 참조. 다만 이렇게 해도 획기적인 음질향상까진 기대하기 힘든데, MP4(H.264 + AAC)보다 WebM(VP9 + Vorbis) 쪽이 비트레이트를 낮게 써서 그렇다. 대신 그만큼 버퍼링은 더 빠르긴 하다.

현재 가장 품질이 좋은 AAC 인코더는 애플의 AAC 인코더이다. OS X아이튠즈, 퀵타임에는 라이브러리처럼 포함되어 있으며, 윈도우에서 이를 공식적으로 쉽게 이용하는 방법은 아이튠즈를 통하는 것이다. 비공식 방법으로 이 라이브러리를 이용하는 툴인 qaac가 있으며, 이를 이용하면 Foobar2000 등에서 AAC를 고퀄로 인코딩할 수 있다. 이것도 최소한 아이튠즈/퀵타임에 내장된 Apple Application Support는 설치해야 하는 것이 조건이다.

여담으로 Winamp의 라이브러리를 끌어다 AAC 인코딩을 하는 fhgaacenc도 있다. [1][6] 이것의 음질에 대해 아는 위키러가 있으면 추가바람

3 오해

애플아이튠즈에서 기본 코덱으로 설정되어 있고, AAC(M4A로 표시되는 경우도 있다.)로 변환하는 인코딩을 지원하기 때문에 AAC는 애플의 자체 코덱이라고 오해하는 사람이 매우 많다. 윗글에도 나와있었지만 MPEG(위원회)과 AT&T 벨 연구소, 프라운호퍼, 돌비 연구소, 소니 등의 기술이 실질적으로 들어갔다. 특히 프라운호퍼의 입김이 가장 강하다. 하지만 입김이 가장 강한 곳에서 만든 AAC보다 아이튠즈 AAC의 압축률이 높다.(...) 뭐 프라운호퍼는 MP3도 LAME에 발렸던 분들이긴 하다
  1. 1.0 1.1 1.2 영문 위키백과
  2. 칼로 자르듯 특정 숫자 하나로 기준을 가를 수는 없겠으나, 주로 64kbps 이하정도. 여기에선 24kbps로 인코딩해서 대충 비교했는데, 저 정도면 어짜피 뭘 써도 FLAC과 테스트 변별 불가능은 애초에 말이 안 되고 그나마 나은 음질을 찾아야 될 판이다.
  3. MP3도 인코더 및 옵션에 따라 320k를 넘게 인코딩할 수 있지만, 이건 표준을 무시하고 강제로 땡깡 놓는 것에 가까워서 디코더 호환성을 엄청나게 타게 된다. (웬만한 디코더는 그냥 재생이 안 된다.) 그짓을 굳이 하느니 그냥 AAC나 Vorbis를 쓰는게 낫다.
  4. 200 ms 내외. AAC 중 latency가 짧은 것은 AAC-LD라고 하며 (20~40 ms), 비트레이트가 낮아 음악 전송용으로 사용하기에는 무리가 있다
  5. 영상 쪽 인코더라서 여러 음성코덱을 사용 가능한데, 그 중 자체 코덱을 말한다.
  6. [1]