FLAC

**FLAC** (*Free Lossless Audio Codec*) on tasuta audiokoodek (kooder/dekooder või tihendaja/hõrendaja), mis võimaldab digitaalsete helifailide kokkusurumist ilma andmekaota. FLAC-algoritmiga tihendatud helifail on oma algsest mahust 50–60% väiksem.

FLAC on avatud vormingus ilma kasutustasu litsentsita vaba tarkvara. FLAC toetab metaandmete sildistamist, albumi kaanepilti ja kiiret otsingut.

Vaatamata sellele, et FLAC ei saa salvestada ujukomaandmeid ning taasesitus kaasaskantavates heliseadmetes ja spetsiaalsetes helisüsteemides on kadudega vormingutega (MP3 või tihendamata PCM) võrreldes piiratud, on FLAC siiski toetatud rohkemate seadmete poolt kui konkureerivad kadudeta tihendatud vormingud (näiteks WavPack).

## Ajalugu

Arendust alustas Josh Coalson 2000. aastal.
Beetastaadiumis FLAC versioon 0.5 avaldati 15. jaanuaril 2001, versioon 1.0 sama aasta 20. juulil.

29. jaanuaril 2003 teatasid sihtastutus Xiph.org ja projekt FLAC ühinemisest Xiph.org bänneri alla. Xiph.org on seotud ka teiste tasuta tihendamisvormingutega, nagu Vorbis, Theora ja Speex.

17. septembril 2007 esitleti versiooni 1.2.1.

## Ülesehitus

FLAC-projekti ülesehitus:
* Vormingute voog;
* Voo jaoks lihtne mahuti vorming;
* libFLAC, koodrite ja dekoodrite teek, metaandmete liides;
* libFLAC++, libFLAC-i ümber objekti pakendaja;
* flac, libFLAC-il põhinev käsurea programm FLAC-i voogude kodeerimiseks ja dekodeerimiseks;
* metaflac, käsureal metaandmete redaktori FLAC-failide ja ReplayGaini rakendamiseks;
* Sisendpluginad muusikaesitajate jaoks (Winamp, XMMS, foobar2000, musikCube jne);
* Xiph.orgiga ühenduses Ogg mahuti vorming (ehk Ogg flac).

Voo vormingu spetsifikatsiooni tohib täiendada igaüks ilma eelneva loata, kuid Xiph.org säilitab õiguse määrata FLAC-i spetsifikatsiooni ja vastavuse kinnitamise. FLAC-vorming ega rakendatud kodeerimis- ja dekodeerimismeetodid ei kuulu ühegi patendi alla. libFLAC ja libFLAC++ lähtekoodid on saadaval BSD litsentsi all, ning flac'i, metaflac'i ja pluginate andmeallikad on saadaval GNU GPL litsentsi all.

## Disain

FLAC-kodeeritud helifailid on algsest mahust tavaliselt 50–60% väiksemad.

FLAC toetab ainult püsikomadiskreete ja on võimeline töötlema mis tahes PCM bitist lahutust 4–32 bitini diskreedi kohta, mis tahes diskreetimissagedusel 1 – 655,350 Hz 1 Hz sammuga ning mis tahes kanaleid vahemikus 1–8. Kanaleid on võimalik rühmitada stereo ja 5.1 stereoheli puhul, mille puhul tekib tihedam tulemus. Voogesituse puhul kasutab FLAC rikutud kaadrite tuvastamiseks CRC kontrollsummasid, lisaks hoitakse kogu MD5 räsiväärtus töötlemata PCM audio andmetest STREAMINFO metaandmete päises. FLAC lubab Rice'i parameetrit vahemikus 0-st 16-ni. FLAC toetab ReplayGaini.

FLAC kasutab lineaarset prognoosi helidiskreetide teisendamiseks väikesteks mittekorreleeruvate arvude jadadeks, mis salvestatakse Golombi-Rice'i kodeerimismeetodi abil. Märgistamiseks kasutab FLAC Vorbisega sama süsteemi.

## Võrdlus teiste vormingutega

FLAC on disainitud tõhusaks heliandmete pakkimiseks, erinevalt ülejäänud üldotstarbelistest pakkimisalgoritmidest nagu DEFLATE, mida kasutatakse ZIP- ja GZIP-vormingutes. Kui ZIP võib tihendada helifaili kuni 20%, siis FLAC võimaldab enamiku helifailide puhul 30–50%.

FLAC-i eelis teiste kadudeta vormingute ees on võime samaaegselt faili dekodeerida ja esitada.

Kuna FLAC on kadudeta vorming, sobib see originaalmeedia omaniku arhiivi, kust on võimalik taastada kaotatud, kahjustunud või kulunud CD või muu meedia. FLAC-i koopia tagab pärast taastamist võrdväärse kvaliteedi, sest see säilitab andmed algupärasel kujul. Täpse koopia saavutamine kadudega vormingust (näiteks MP3) on võimatu.

## Rakendamine

FLAC on kompileeruv paljudel platvormidel: Microsoft Windows, Mac OS X, Linux, Unix, Palm OS, Symbian OS ja Rockbox. Esialgu puudub libFLAC-i tugi mitmetuumalistel süsteemidel.

Androidi versioon 3.1 ja hilisemad versioonid toetavad FLAC-vormingut.

## Viited