FLAC - FLAC

Zdarma bezztrátový zvukový kodek
Logo FLAC vektor. Svg
Snímek obrazovky FLAC 1.3.3.png
Vývojáři Nadace Xiph.Org , Josh Coalson, Erik de Castro Lopo
První vydání 20. července 2001 ; před 20 roky ( 2001-07-20 )
Stabilní uvolnění
1.3.3 / 4. srpna 2019 ; Před 2 roky ( 4. srpna 2019 )
Úložiště
Operační systém Cross-platform
Typ Kodek
Licence Nástroje příkazového řádku: Knihovny GNU GPL
: BSD
webová stránka xiph .org / flac
Zdarma bezztrátový zvukový kodek
Přípona názvu souboru
.flac
Typ internetového média
audio/flac
Jednotný identifikátor typu (UTI) org.xiph.flac
Kouzelné číslo fLaC
Typ formátu Zvuk
Standard xiph .org / flac /format .html
Otevřený formát ? Ano

FLAC ( / f l æ k / ; Free Lossless Audio Codec ) je audio kódovací formát pro bezztrátovou kompresi z digitálního audia , vyvinutý Xiph.org Foundation , a je také jméno svobodného softwarového projektu výroby FLAC nástrojů, na referenční softwarový balíček, který obsahuje implementaci kodeku . Digitální zvuk komprimovaný algoritmem FLAC lze obvykle zmenšit na 50 až 70 procent původní velikosti a dekomprimovat na identickou kopii původních zvukových dat.

FLAC je otevřený formát s licencováním bez licenčních poplatků a referenční implementací, kterou je bezplatný software . FLAC podporuje značkování metadat , obal alba a rychlé vyhledávání.

Dějiny

Vývoj zahájil v roce 2000 Josh Coalson. Formát bitového proudu byl zmrazen, když FLAC vstoupil do beta fáze s vydáním verze 0,5 referenční implementace 15. ledna 2001. Verze 1.0 byla vydána 20. července 2001.

Dne 29. ledna 2003 oznámila nadace Xiph.Org a projekt FLAC začlenění FLAC pod hlavičku Xiph.org. Xiph.org je domovem dalších bezplatných kompresních formátů, jako jsou Vorbis , Theora , Speex a Opus .

Verze 1.3.0 byla vydána 26. května 2013, kdy byl vývoj přesunut do úložiště git Xiph.org.

Složení

Projekt FLAC se skládá z:

  • Formáty streamu
  • Jednoduchý kontejnerový formát pro stream, nazývaný také FLAC (nebo nativní FLAC )
  • libFLAC, knihovna referenčních kodérů a dekodérů a rozhraní metadat
  • libFLAC ++, objektově orientovaný obal kolem libFLAC
  • flac, program příkazového řádku založený na libFLAC ke kódování a dekódování streamů FLAC
  • metaflac, editor metadat příkazového řádku pro soubory .flac a pro použití ReplayGain
  • Vstupní doplňky pro různé hudební přehrávače ( Winamp , XMMS , foobar2000 , musikCube a mnoho dalších)
  • Se začleněním Xiph.org, formát kontejneru Ogg , vhodný pro streamování (také nazývaný Ogg FLAC )

Specifikaci formátu streamu může implementovat kdokoli bez předchozího svolení (Xiph.org si vyhrazuje právo nastavit specifikaci FLAC a certifikovat shodu) a na žádný formát FLAC ani na implementované metody kódování nebo dekódování se nevztahuje žádný patent. . Referenční implementace je svobodný software . Zdrojový kód pro libFLAC a libFLAC ++ je dostupný pod licencí BSD a zdroje flac, metaflaca zásuvné moduly jsou k dispozici pod GNU General Public License .

Ve stanovených cílech projekt FLAC podporuje své vývojáře, aby neimplementovali funkce prevence kopírování ( DRM ) jakéhokoli druhu.

Design

Zvukové zdroje kódované do FLAC jsou obvykle zmenšeny na 50–70% původní velikosti, podobně jako u jiných bezeztrátových formátů, ačkoli konečná velikost závisí na hustotě a amplitudě komprimované hudby a u některých hudebních souborů může být velikost souboru snížena až o 80%.

Zdrojový kodér

  • Formát FLAC podporuje pouze celočíselné vzorky, nikoli plovoucí desetinnou čárku . Zvládne jakékoli bitové rozlišení PCM od 4 do 32 bitů na vzorek, libovolnou vzorkovací frekvenci od 1  Hz do 65 535 Hz v krocích po 1 Hz nebo od 10 Hz do 655 350 Hz v krocích po 10 Hz a libovolný počet kanálů od 1 do 8. K dnešnímu dni (verze 1.3.3 referenčního kodéru) je kódování FLAC omezeno na 24 bitů na vzorek, protože neexistuje žádný kodér pro 32 bitů na vzorek.
  • Kanály mohou být v některých případech seskupeny, například stereo a 5.1kanálový prostorový zvuk , aby se využily mezikanálové korelace ke zvýšení komprese.
  • Kontrolní součty CRC se používají k identifikaci poškozených rámců při použití ve streamovacím protokolu. Soubor také obsahuje kompletní MD5 hash nezpracovaného zvuku PCM v záhlaví metadat STREAMINFO . FLAC umožňuje parametr Rice mezi 0 a 16.
  • FLAC používá k převodu zvukových vzorků lineární predikci . Existují dva kroky, prediktor a chybové kódování. Prediktorem může být jeden ze čtyř typů (Zero, Verbatim, Fixed Linear a Finite Impulse Response (FIR) Linear). Vypočítá se rozdíl mezi prediktorem a skutečnými daty vzorku a je znám jako zbytkový. Zbytek je efektivně uložen pomocí kódování Golomb-Rice . Používá také kódování délky běhu pro bloky identických vzorků, jako jsou tiché pasáže.

Metadata

  • FLAC podporuje ReplayGain .
  • Pro označování používá FLAC stejný systém jako komentáře Vorbis .
  • Rozhraní libFLAC API je organizováno do streamů, viditelných streamů a souborů (seřazeno podle rostoucí abstrakce od základního bitového proudu FLAC).
  • Většina aplikací FLAC se obecně omezí na kódování/dekódování pomocí libFLAC v rozhraní na úrovni souborů.

Úrovně komprese

libFLAC používá parametr úrovně komprese, který se pohybuje od 0 (nejrychlejší) do 8 (nejpomalejší). Komprimované soubory jsou vždy dokonalé, bezeztrátové reprezentace původních dat. Přestože proces komprese zahrnuje kompromis mezi rychlostí a velikostí, proces dekódování je vždy poměrně rychlý a nezávisí na úrovni komprese.

Podle benchmarku .WAV běžícího s Athlonem XP 2400+ vyžaduje použití vyšších sazeb nad výchozí úroveň −5 kódování podstatně více času, aniž by docházelo ke skutečným úsporám místa.

Možnost komprese Originál Stlačený Doba trvání Poměr Čas kódování Rychlost kódování Doba dekódování Rychlost dekódování
−0 2,030 GiB 1,435 GiB 03:18:21 70,67% 01:29 134 × 01:24 141 ×
−5 2,030 GiB 1,334 GiB 03:18:21 65,72% (-4,95)% 03:44 53 × (2,5 × pomalejší) 01:36 124 ×
−6 2,030 GiB 1,334 GiB 03:18:21 65,71% (-4,96, -0,01)% 03:51 52 × (2,6 × pomalejší) 01:36 124 ×
−7 2,030 GiB 1,333 GiB 03:18:21 65,67% (-5, -0,04)% 07:47 25 × (5,3 × pomalejší) 01:36 123 ×
−8 2,030 GiB 1,329 GiB 03:18:21 65,47% (−5,2, −0,2)% 10:17 19 × (7 × pomalejší) 01:40 120 ×
−8 -Tukey (0,5) -A flattop 2,030 GiB 1,328 GiB 03:18:21 65,40% (-5,27, -0,07)% 16:39 12 × (11 × pomalejší) 01:35 125 ×

Srovnání s jinými formáty

FLAC je speciálně navržen pro efektivní balení zvukových dat, na rozdíl od obecných bezeztrátových algoritmů, jako je DEFLATE , které se používají v ZIP a gzip . Zatímco ZIP může snížit velikost zvukového souboru v kvalitě CD o 10–20%, FLAC je schopen zmenšit velikost zvukových dat o 40–50% využitím výhod vlastností zvuku.

Technické přednosti FLAC ve srovnání s jinými bezztrátovými formáty spočívají v jeho schopnosti rychle streamovat a dekódovat, nezávisle na úrovni komprese.

Protože FLAC je bezztrátové schéma, je vhodné jako archivní formát pro majitele disků CD a jiných médií, kteří si chtějí zachovat své zvukové sbírky. Pokud dojde ke ztrátě, poškození nebo opotřebení původního média, kopie zvukových stop FLAC zajistí, že bude možné kdykoli obnovit přesnou kopii původních dat. Přesné obnovení ze ztrátové kopie (např. MP3 ) stejných dat není možné. FLAC je bezeztrátový, což znamená, že je velmi vhodný pro překódování, např. Do MP3, bez normálně spojené ztráty kvality překódování mezi jedním ztrátovým formátem a druhým. Soubor CUE lze volitelně vytvořit při kopírování disku CD. Pokud je disk CD správně načten a zkopírován do souborů FLAC, umožňuje soubor CUE pozdější vypálení zvukového disku CD, který je ve zvukových datech identický s původním diskem CD, včetně pořadí skladeb a předpony , ale s vyloučením textu na disku CD a dalších doplňkových dat, jako je texty a grafika CD+G .

Přijetí a implementace

Referenční implementace FLAC je implementována jako knihovna kodérů a dekodérů libFLAC jádra, přičemž hlavním distribuovatelným programem flacje referenční implementace libFLAC API. Toto API kodeku je k dispozici také v C ++ jako libFLAC ++. Referenční implementace FLAC se kompiluje na mnoha platformách, včetně většiny unixových (jako je Solaris , BSD ) a unixových (včetně Linuxu ), Microsoft Windows , BeOS a OS/2 operačních systémů. Existují build systémy pro autoconf / automake , MSVC , Watcom C a Xcode . V libFLAC v současné době neexistuje vícejádrová podpora, ale k roztočení více instancí kodéru lze použít nástroje jako GNU paralelní a různé grafické frontendy.

Podpora přehrávání FLAC v přenosných zvukových zařízeních a vyhrazených zvukových systémech je ve srovnání s formáty, jako je MP3 nebo nekomprimovaný PCM, omezená . Podpora FLAC je ve výchozím nastavení součástí zařízení Windows 10 , Android , BlackBerry 10 a Jolla .

V roce 2014 představilo několik aftermarketových společností zabývajících se mobilní elektronikou multimediální řešení, která zahrnují podporu pro FLAC. Patří sem řada NEX od Pioneer Electronics a VX404 a NX404 od Clarion.

European Broadcasting Union (EBU) přijala formát FLAC pro distribuci vysoce kvalitního zvuku přes své síti Euroradio. Windows operační systém podporuje nativní integraci FLAC od zavedení systému Windows 10. operačním systémem Android je podporován nativní přehrávání FLAC od verze 3.1. macOS High Sierra a iOS 11 přidávají nativní podporu přehrávání FLAC.

Mj Pono hudební přehrávač a streaming služba používá formát FLAC. Bandcamp trvá na bezztrátovém formátu pro nahrávání a jako možnost stahování má FLAC. Wikimedia Foundation sponzoroval svobodný a open-source on-line ECMAScript nástroj FLAC pro prohlížeče podporující požadované HTML5 funkce.

Podpora FLAC různými operačními systémy
Microsoft Windows Operační Systém Mac Linux Android BlackBerry OS iOS
Podpora kodeku Ano Ano Ano Ano Ano Ano
Podpora kontejneru FLAC (.flac)
Matroska (.mka, .mkv)
FLAC (.flac)
Core Audio Format (.caf)
FLAC (.flac)
Matroska (.mka, .mkv)
Ogg (.oga)
FLAC (.flac) FLAC (.flac) FLAC (.flac)
Core Audio Format (.caf)
Poznámky Podpora zavedena v systému Windows 10. Podpora zavedena v High Sierra. V závislosti na distribuci může být nutné nainstalovat FLAC . Podpora zavedena v systému Android 3.1 Podpora zavedena v systému BlackBerry OS 5.0 Podpora zavedena v iOS 11 (ale závisí na použitém hardwaru).

Jsou podporovány různé další kontejnery, nezávisle na použitém operačním systému, v závislosti na použitém softwaru pro přehrávání.

Viz také

Reference

externí odkazy