Apple Lossless

 


[image]
'''Apple Lossless'''
개발자
애플
정식 버전
2011년 10월 28일
운영체제
크로스 플랫폼
종류
오디오 코덱
확장자
.m4a, .caf
라이선스
아파치 라이센스 2.0
홈페이지
https://macosforge.github.io/alac/
1. 개요
2. 상세
3. 특징
4. 인코더/디코더
5. 사양
6. 관련 문서

[clearfix]

1. 개요


Apple에서 개발한 디지털 음악의 무손실 압축 포맷이다. Apple lossless, ALAC[1], Apple 무손실 등으로 불린다.

2. 상세


MPEG-4 파트 14에도 정의된 오디오 코덱으로 데이터는 기본적으로 MP4 컨테이너에 저장되고 확장자는 기본적으로 .m4a를 사용하지만 .mp4 확장자로도 사용할 수 있다. 아주 드물게 .caf 확장자도 볼 수 있는데 가장 쉽게 접할 수 있는 곳은 GarageBandLogic Pro의 일부 음원 파일이라고 한다. 그 외에 iOS의 벨소리 등 시스템 사운드의 확장자도 caf포맷이다. 2004년 4월 28일, QuickTime Player 6.5.1에 포함된 것으로 처음 공개되었는데, 2011년 10월 말 애플이 아파치 라이선스로 공개하여 오픈 소스가 되기 전까지 포맷이 비공개였다.[2] 그럼에도 불구하고 프로그래머 David Hammerton와 Cody Brocious의 노력 끝에 코덱을 해석해 디코딩하는데 성공했고, C를 기반으로 한 오픈소스 디코더를 배포하기도 하였다.
Apple에서 개발한 다른 오디오 포맷도 있는데, 자세한 내용은 AIFF 문서를 참조하길 바란다.

3. 특징


무손실 코덱 간 비교표
무손실 압축 포맷으로 FLAC와 구조적으로 상당히 유사하다. FLAC과는 다르게 압축 레벨 옵션이 전혀 없고 오직 한 방식으로만 압축하거나(스테레오 제외) 2단계(스테레오, 미입력 시 일반 압축, --fast 입력 시 고속 압축)만 있다. FLAC의 압축 레벨에 따라 조금씩 차이는 있지만 실제 압축된 결과물은 FLAC쪽이 약간 더 용량이 작다. 또한 FLAC와는 달리 Error handling을 지원하지 않는다. 메타 태그를 독자적인 iTunes태그를 사용하는 점도 특징.
일반적으로 이 코덱은 음악 감상을 목적으로 사용되고 m4a 확장자를 사용하기 때문에 잘 알려지진 않은 사실이나 기본적으로 MP4 컨테이너에 저장 되기 때문에 일반적이지는 않은 조합이지만 mp4를 확장자로 하는 동영상의 음성 코덱으로도 사용이 가능하다.

4. 인코더/디코더


오픈소스로 코덱이 공개되었지만 이후 별다른 업데이트도 없고 현재까지도 Apple이 공식적으로 빌드해서 배포한 인코더가 없다. 공개된 소스를 받아서 빌드하면 libalac 라이브러리가 나올 뿐이다. 간단한 인코더도 포함되어 있기는 한데, 사용하기 불편한 예제 수준의 물건이라서 비공식적으로도 배포하는 사람이 없다. 즉 ALAC 인코더라고 나온 것들은 대부분이 공개된 libalac 소스를 기반으로 한 비공식 인코더이고, 독자적인 소스를 쓰는 것도 조금 있다.
가장 유명한 것은 macOS, iTunes, QuickTime Player 등에 포함된 라이브러리의 ALAC 인코딩 기능을 사용하는 서드파티 프론트엔드 인코더인 '''qaac'''이다. 이름에서 알 수 있듯 본디 AAC 인코딩을 목적으로 개발된 인코더지만 같은 라이브러리를 쓰므로 ALAC도 지원한다. 유명한 미디어 플레이어인 foobar2000의 컨버트 기능에도 qaac를 이용한 ALAC 인코딩 프리셋이 추가되었고, 2015년 3월 5일자로 무료 인코더 팩에도 qaac가 포함됨에 따라 ALAC 인코딩이 좀 더 편해졌다. 단, qaac 인코더는 Apple Application Support(iTunes 등에 내장됨)가 시스템에 먼저 설치되어 있어야 동작한다.
iTunes나 QuickTime Player을 설치하기 싫다면 qaac와 한 패키지인 refalac을 쓰면 된다. 이쪽은 Apple이 공개한 ALAC 소스를 사용하기 편하도록 qaac와 비슷한 프론트엔드로 만든 인코더. Apple 라이브러리에 의존성이 없으므로 iTunes 같은 걸 설치하지 않고도 쓸 수 있다. 어차피 qaac를 받으면 같이 들어있으니 마음에 드는 걸 쓰자. foobar2000의 경우 무료 인코더 팩을 설치하면 refalac을 컨버터 옵션에 추가해준다.
FFmpeg는 직접 개발한 libavcodec 코덱을 쓰고, libavcodec은 위에서 언급했듯 Apple이 오픈소스로 인코더/디코더를 공개하기 전에 리버스 엔지니어링으로 개발한 소스를 쓴다. 당연히 iTunes나 QuickTime Player 설치 없이 변환이 가능하다. AAC M4A에서 qaac보다 압축률이 떨어지는 것을 보아 인코더의 성능이 qaac보다 떨어지긴 하는 듯.

5. 사양


  • 샘플당 비트 수: 16, 20, 24, 32비트
  • 샘플 레이트
    • 공식 지원: 1Hz에서 384kHz까지의 모든 정수 샘플 레이트
    • 이론적: 1Hz에서 (2^32-1Hz)까지
  • 채널: 1~8채널
  • 프리셋: 1개(스테레오 제외), 2개(스테레오, 미입력 시 일반 압축, --fast 입력 시 고속 압축)

6. 관련 문서




[1] Apple Loseless Audio Codec[2] 압축된 코덱을 재생하기 위해선 디코딩 과정이 필요한데 이 디코딩 방법을 비공개로 했다는 소리이다. 즉, 다른 플레이어나 장치에서는 재생 불가였다는 뜻.