FLAC

오디오 데이터 압축을 위한 파일 형식

FLAC(Free Lossless Audio Codec, /ˈflæk/)은 오디오 데이터 압축을 위한 파일 형식이다. 무손실 압축 포맷이다. 다시 말해서, MP3, AAC, Vorbis와는 달리 오디오 스트림에 손실이 발생하지 않는다.

Free Lossless Audio Codec
The Free Lossless Audio Codec (FLAC) 로고
파일 확장자.flac
인터넷 미디어 타입
audio/x-flac[1]
포맷 종류오디오
Free Lossless Audio Codec
개발자Xiph.Org 재단
안정화 버전
1.4.3[2] / 2023년 6월 23일 (9개월 전)
저장소
운영 체제크로스 플랫폼
종류오디오 코덱, 오디오 파일 포맷
라이선스GNU 일반 공중 사용 허가서
BSD 사용 허가서 (Xiph.Org 부분)
웹사이트https://xiph.org/flac

다른 압축 방법들과 마찬가지로, FLAC의 장점은 전송율·대역폭·저장공간 등을 절약할 수 있다는 점인데, FLAC은 오디오 소스를 온전한 모습으로 보전해준다. 예를 들어, 디지털 레코딩(콤팩트 디스크)을 FLAC으로 인코드하였다가 디코드하면 정확히 똑같은 오디오 데이터를 얻을 수 있다. 보통, FLAC으로 압축하면 원래 크기의 40-50%로 줄어든다. (FLAC 개발자들은 약 47%이라고 주장)[3]

FLAC는 태깅(tagging), 앨범 아트, 빠른 건너뛰기(fast seeking)을 지원하기 때문에, 일상적인 음악 재생과 보관에 알맞다. FLAC은 자유 소프트웨어이자 동시에 오픈 소스 소프트웨어, 로열티 없는 소프트웨어이기 때문에, 많은 응용 소프트웨어가 FLAC을 지원하고 있다. 휴대용 음악 기기나 MP3 플레이어, 고급 오디오 시스템에서의 FLAC 지원은 얼마전까지만 해도 미미했으나 MP3 플레이어 등 휴대용 기기 한정으로 2013년 기준으로 상당수 기종에서 이 포맷을 지원한다. .[4] Apple iOS11에 새로 추가된 '파일'앱의 일부로 flac 재생 기능이 추가되었다.[5]

조시 콜슨(Josh Coalson)이 FLAC의 주요 개발자이다.

2003년 1월 29일, 자이포포러스 (현 Xiph.Org 재단. 자유 코덱, 자유 포맷 등을 개발하는 단체이다.) Vorbis, Theora, Speex 및 기타 등등과 마찬가지로, 그들의 목록에 FLAC도 편입한다고 발표하였다.[6]

FLAC 프로젝트 편집

FLAC 프로젝트는 다음과 같은 것을 포함한다.

  • 스트림 포맷.
  • 스트림을 위한 단순한 콘테이너 포맷. 단순히 FLAC이라고 불린다. (혹은 Native FLAC이라고 불린다.)
  • libFLAC, 인코더와 디코더를 위한 레퍼런스 라이브러리. 메타데이터 인터페이스 포함.
  • libFLAC++, libFLAC의 "객체 지향" 래퍼(wrapper).
  • flac, libFLAC에 대한 명령행(command-line) 래퍼(wrapper). 또한 FLAC 스트림을 디코드할 수 있다.
  • metaflac, 명령행(command-line) 메타데이터 편집기. .flac 파일을 편집할 수 있다. 리플레이 게인(Replay Gain)을 적용시킬 수도 있다.
  • 여러 음악 재생기에 대한 입력 플러그인(input plugins) (AIMP, 윈앰프, XMMS, foobar2000, musikCube 등등 )
  • Xiph.org에 편입된 후, Ogg 콘테이너 포맷. 스트리밍에 알맞음. (다른 말로 Ogg FLAC)

"자유"란 말은 스트림 포맷 제작자의 허락 없이 누구나 그 포맷을 구현할 수 있다는 말이자, (Xiph.org가 FLAC 스펙의 권리를 보유하고 있다. 또한 호환성을 인증할 권리를 보유하고 있다.) 어떤 특허도 FLAC 포맷 및 인코드/디코드 방법을 커버하고 있지 않다는 말이다. 또한, 레퍼런스 구현이 자유 소프트웨어이라는 뜻도 된다. libFLAC 및 libFLAC++의 소스는 Xiph.org의 BSD 사용 허가서 하에서 배포된다. flac, metaflac 및 플러그인의 소스는 GNU 일반 공중 사용 허가서 하에서 배포된다.

프로젝트 목적에 대한 글에서 언급되었는 바, FLAC 프로젝트 내에서는 개발자들이 복사 방지 기능을 구현해 넣지 않는 것을 장려하고 있다.[7]

비교 편집

FLAC은 오디오 데이터의 효율적인 압축을 위해 특수하게 설계되었다. 일반적인 무손실 압축 방식인 ZIPgzip과는 다르다. CD 품질의 오디오에 대하여, ZIP은 10 - 20%의 압축률을 보여주나, FLAC은 대개 30 - 50% 압축률을 보여준다. 보통의 음악에 경우 그러한데, 목소리 녹음의 경우에는 압축률이 더 올라간다. 비트 레이트는 약 700 - 950 kbit/s이다.

손실 압축 코덱(Lossy codecs)은 80% 이상의 압축률을 보여준다. 원본 스트림의 데이터를 까먹기 때문이다. FLAC은 선형 예측 방법을 사용하는데, 오디오 샘플을 작고, 상관 관계가 없는 값들 (나머지라 부른다)의 수열로 변환한다. 이 수열은 골롬-라이스 코딩 (Golomb-Rice coding)을 사용하여 효율적으로 저장될 수 있다. 또한 FLAC은 소리 없는 구간 등 동일한 샘플의 블록들에 대해 반복 길이 부호화를 사용한다. 다른 무손실 압축 코덱과 비교하면, FLAC은 스트림 가능한 것이 특징이다. 또한 FLAC의 디코딩 시간은 비교적 빠른 축에 속하는데, 이것은 압축 레벨과 관계없다.

다른 무손실 압축 방식과 마찬가지로, FLAC은 콤팩트 디스크 등의 미디어 소유자가 소장하고 있는 오디오 작품을 장기간 보존하는 데 있어서, 매우 널리 쓰이는 포맷이다. 원본 미디어는 세월이 지나, 분실, 손상 등이 될 수 있지만, FLAC으로 복제된 오디오는 언제든 정확히 원본 미디어의 오디오 데이터와 동일하게 복구될 수 있다. MP3과 같은 손실 있는 코덱으로 압축된 데이터는 원본 미디어의 오디오 데이터와 동일하게 복구될 수 없다. CD를 리핑할 때 선택적으로 큐 시트 (음악 소프트웨어(.CUE 파일)을 생성할 수 있다. CD를 FLAC으로 완전히 리핑해두었다가, 훗날 이 CUE 파일의 도움을 받아 정확히 동일한 CD를 구워낼 수 있다. 트랙 순서, 프리갭, CD-Text 등을 정확하게 복원할 수 있다. 하지만 일부 오디오 CD에 들어 있는 가사, CD+G 그래픽스 등은 CUE 파일 및 대부분의 CD 리핑 애플리케이션의 범위 밖이며, 정확히 원본대로 복원시킬 수 없다.

유럽 방송 연합 (EBU)은 유로라디오(Euroradio) 네트웍에서 고품질의 오디오를 배포하는 데 FLAC 포맷을 사용하기로 하였다.

하이드로젠오디오 위키(Hydrogenaudio Wiki)에 무손실 코덱간 비교표[8] 가 있다.

기술적 상세 편집

FLAC은 부동소수점을 지원하는 것이 아니라 오직 고정 소수점만 지원한다. 4내지 32 비트 샘플 크기를 지닌 PCM을 처리할 수 있으며, 샘플링 레이트는 1 헤르츠 내지 1,048,570 Hz까지 1 Hz 단위로 처리할 수 있으며, 1 내지 8 채널을 처리할 수 있다. 채널은 스테레오나 5.1 채널 서라운드 사운드처럼 묶일 수 있는데, 채널간 상관 관계(correlation)을 이용하여 압축률을 높일 수 있다. 스트리밍 프로토콜에서 사용될 경우, FLAC은 CRC 첵섬을 사용하여, 잘못된 프레임을 골라낸다. 또한 그것의 STREAMINFO 메타데이터 헤더 내에 "본디 PCM"의 완전한 MD5 해시값도 갖고 있다.

FLAC의 라이스 파라미터(Rice parameter)는 0-16이다. 최대 8 채널의 오디오, 최대 192kHz까지의 다양한 샘플링 레이트, 다양한 비트-퍼-샘플 너비를 지원한다. FLAC은 또한 리플레이 게인을 지원한다.

FLAC은 libFLAC 코어 인코더 & 디코더 라이브러리로서 구현되었다. libFLAC API을 사용하는 레퍼런스 프로그램으로서 flac이라는 프로그램이 같이 들어있다. 이 코덱 API는 libFLAC++이라는 이름으로 C++ 버전으로서 존재한다.

FLAC의 레퍼런스 구현은 수많은 플랫폼 상에서 컴파일된다. 대부분의 유닉스 (솔라리스 등), 유닉스 계통 (리눅스, OS X, BSD 포함), 마이크로소프트 윈도우, BeOS, OS/2 운영 체제에서 빌드된다. Autoconf/ Automake, MSVC, Watcom C, Xcode 등을 위한 빌드 시스템이 갖추어져 있다.

태깅(tagging) 기능을 위해, FLAC은 보비스 코멘트와 똑같은 시스템을 사용한다.[9]

API 구성 편집

libFLAC API는 기본 FLAC 비트스트림(bitstream)을 더 추상화한 것으로서, 스트림(stream), 건너뛰기 가능한 스트림(seekable stream), 파일(file)로 구성된다. 대부분의 FLAC 애플리케이션은 libFLAC을 이용하되 파일 레벨 인터페이스를 이용한다.

FLAC을 지원하는 소프트웨어 편집

인코딩 편집

디코딩 편집

  • 모바일
    • iOS: iOS11 이상, 아이폰7 이상
    • 안드로이드

리핑 편집

하드웨어 편집

  • 마이크로소프트 엑스박스 - 단, 서드 파티 Xbox Media Center를 구동해야 함.
  • 아이팟 - 비디오, 나노, 포토, 컬러, 미니 (2세대). 단, 서드 파티 락박스 펌웨어를 사용해야 함.
  • (거의 대부분의) 락박스-호환 디지털 오디오 플레이어 - 아이리버, 기가비트 (도시바), 앞에서 얘기한 아이팟 포함.
  • Escient[12]
  • iAudio - 코원시스템의 디지털 오디오 플레이어. 4, 5, 6, 7, F2, M3, M5, X5, U2, U3, A2, A3, D2, O2, S9. 새 버전의 펌웨어는 자체 지원.
  • 올리브 미디어 프로덕츠 (Symphony, Musica, Opus)[13]
  • PhatBox 하드 드라이브 내장 자동차 디지털 미디어 플레이어, 팻노이즈(PhatNoise) 사 판매.
  • Rio Karma
  • Squeezebox network music player (v1 버전에서는 서버 측에서 PCM으로 트랜스코드한다. v2 및 그 이상의 버전에서는Squeezebox에서 자체 지원한다.)
  • Sonos
  • Meizu M6 Mini Player, M3 Music Card
  • Pixel Magic Systems' HD Mediabox (펌웨어 버전 1.3.4 이상)
  • Embedded Waveplayer- Module with FLAC level 0-2 support, MIDI and serial interface
  • 텍라스트 T29, T39, C260, C280, C290
  • Trekstor Vibez
  • 모든 UPnP A/V / DLNA 장치 - e.g. 넷기어 EVA700, 넷기어 MP101, Roku Soundbridge 혹은 Xbox 360 (TVersity와 같은 애플리케이션을 통해 트랜스코드되어 스트림될 때. 단, 이 애플리케이션은 ffdshow를 사용.)
  • Sound Devices 7-Series Professional Audio Recorders - 단, 뱃저(badger) 펌웨어 업데이트가 되었을 때(v.2.24)[14]
  • Denon AVR-4308 & AVR-3808 AV 리시버[15]
  • T+A Music Player[16]
  • 클라이막스 DS 디지털 뮤직 플레이어

같이 보기 편집

각주 편집

  1. Registration being sought as audio/flac
  2. “FLAC 1.4.3 Released With More Optimizations, Drops PowerPC-Specific Code”. 2023년 6월 23일. 2024년 2월 19일에 확인함. 
  3. “FLAC - comparison”. 2008년 1월 27일에 확인함. 
  4. FLAC 웹사이트
  5. “Apple reportedly adds support for FLAC lossless audio in iOS 11”. 《The Verge》. 2017년 11월 30일에 확인함. 
  6. “2003년 1월 29일: FLAC Joins Xiph.Org”. 2008년 2월 9일에 확인함. 
  7. FLAC Website
  8. “Lossless comparison - Hydrogenaudio Knowledgebase”. 2008년 1월 27일에 확인함. 
  9. “FLAC - faq”. 2008년 1월 27일에 확인함. 
  10. [1]
  11. Flake
  12. “Supported Digital Music Formats & Tagging Requirements” (PDF). Escient. p. 2쪽. 2008년 5월 17일에 원본 문서 (PDF)에서 보존된 문서. 2008년 1월 27일에 확인함. 
  13. “Olive”. 2008년 12월 1일에 원본 문서에서 보존된 문서. 2008년 2월 10일에 확인함.  다음 글자 무시됨: ‘Save The Sound. - Olive'S Free Cd Ripping Service - Preload Terms’ (도움말)
  14. “Data Compression and Reduction Options for 7-Series Recorders”. 2008년 2월 5일에 원본 문서에서 보존된 문서. 2008년 1월 27일에 확인함.  다음 글자 무시됨: ‘Sound Notes’ (도움말); 다음 글자 무시됨: ‘Sound Devices, LLC’ (도움말)
  15. “DENON UK”. 2008년 1월 12일에 원본 문서에서 보존된 문서. 2008년 1월 27일에 확인함.  다음 글자 무시됨: ‘Home Audio Components’ (도움말)
  16. “T+A E-Series Music-Player”. 2007년 12월 28일에 원본 문서에서 보존된 문서. 2008년 1월 27일에 확인함. 

외부 링크 편집