FLAC

FLAC(Free Lossless Audio Codec)은 오디오 데이터 압축을 위한 파일 형식으로 무손실 압축 기술입니다. 다시 말해서, MP3, AAC, Vorbis와는 달리 오디오 스트림에 손실이 발생하지 않습니다. 이것은 Zip이 동작하는 것과 비슷하지만 오디오용으로 특별하게 설계되었기 때문에 훨씬 더 압축을 잘 할 수 있습니다. 다른 압축 방법들과 마찬가지로, FLAC의 장점은 전송율•대역폭•저장공간 등을 절약할 수 있다는 점인데, FLAC은 오디오 소스를 온전한 모습으로 보전해 줍니다. 예를 들어, 디지털 레코딩(콤팩트 디스크)을 FLAC으로 인코드하였다가 디코드하면 정확히 똑같은 오디오 데이터를 얻을 수 있다. 보통, FLAC으로 압축하면 원래 크기의 40-50%로 줄어듭니다.

나선(nahsun)의 FLAC 디코더는 ARM 프로세서군에서 고정소수점으로 최적화되어 구현되었습니다.

Flac_dec_block

지원 비트스트림 특성

  • 샘플링 주파수 (KHz) : 8, 11.025, 12, 16, 22.05, 24, 32, 44.1, 48
  • 채널 : 모노(1ch)/스테레오(2ch)
  • 파일 포맷 : flac 자체 포맷

지원 소프트웨어 특성

  • 재진입이 가능한(reentrant) 코드. 다중스레드(multithread)와 동적인 메모리 할당.
  • 지원되는 라이브러리 포맷
    • ADS 1.2
    • RealView 4.0
    • WinCE (Embedded Visual C)
    • Android
    • iOS
  • Data 메모리 : 실시간으로 할당 가능
  • API : C에서 호출이 가능한 API

디코더 성능 및 메모리 사양 (ARM9E 기준)

  • 복잡도 : **MHz
  • Code ROM : ** KB
  • Constant Data ROM : ** KB
  • RAM : ** KB