FLAC -
FLAC

Från Wikipedia, den fria encyklopedin

Gratis Lossless Audio Codec
FLAC -logotyp vektor.svg
FLAC 1.3.3 screenshot.png
Utvecklare Xiph.Org Foundation , Josh Coalson, Erik de Castro Lopo
Initial release 20 juli 2001
; 20 år sedan
 (
2001-07-20
)
Stabil frisättning
1.3.3 / 4 augusti 2019
; 2 år sedan
 (
4 augusti 2019
)
Förvar
Operativ system Plattformsoberoende
Typ Codec
Licens Kommandoradsverktyg: GNU GPL
Libraries: BSD
Hemsida
Filnamnstillägg
.flac
Internetmedietyp
ljud/flac
Uniform Type Identifier (UTI) org.xiph.flac
Magiskt nummer fLaC
Typ av format Audio
Standard
Ja

FLAC (

; Free Lossless Audio Codec ) är ett ljudkodningsformat för förlustfri komprimering av digitalt ljud , utvecklat av Xiph.Org Foundation , och är också namnet på det fria mjukvaruprojekt som producerar FLAC -verktygen, referensprogramvarupaket som innehåller en codec -implementering. Digitalt ljud som komprimeras av FLACs algoritm kan vanligtvis reduceras till mellan 50 och 70 procent av dess ursprungliga storlek och dekomprimeras till en identisk kopia av de ursprungliga ljuddata.

FLAC är ett öppet format med royaltyfri licensiering och en referensimplementering som är gratis programvara . FLAC har stöd för metadatamärkning , skivomslag och snabbsökning.

Historia

Utvecklingen startades 2000 av Josh Coalson. Bitströmformatet frystes när FLAC gick in i betastadiet med version 0.5 av referensimplementeringen den 15 januari 2001. Version 1.0 släpptes den 20 juli 2001.

Den 29 januari 2003 tillkännagav Xiph.Org Foundation och FLAC -projektet införlivandet av FLAC under Xiph.org -fanan. Xiph.org är hem för andra gratis komprimeringsformat som Vorbis , Theora , Speex och Opus .

Version 1.3.0 släpptes den 26 maj 2013, då utvecklingen flyttades till Xiph.org git -förvaret.

Sammansättning

FLAC -projektet består av:

  • Strömformaten
  • Ett enkelt behållarformat för strömmen, även kallat FLAC (eller Native FLAC )
  • libFLAC, ett bibliotek med referenskodare och avkodare, och ett metadata -gränssnitt
  • libFLAC ++, en objektorienterad omslag runt libFLAC
  • flac, ett kommandoradsprogram baserat på libFLAC för att koda och avkoda FLAC-strömmar
  • metaflac, en kommandorads-metadata-editor för .flac-filer och för att tillämpa ReplayGain
  • Inmatningsprogram för olika musikspelare ( Winamp , XMMS , foobar2000 , musikCube och många fler)
  • Med Xiph.org -inkorporering, Ogg -behållarformatet, lämpligt för streaming (kallas även Ogg FLAC )

Specifikationen av strömformatet kan implementeras av alla utan föregående tillstånd (Xiph.org förbehåller sig rätten att ställa in FLAC -specifikationen och certifiera överensstämmelse), och varken FLAC -formatet eller någon av de implementerade kodnings- eller avkodningsmetoderna omfattas av något patent . Den referensimplementering är fri programvara . Den källkoden för libflac och libflac ++ är tillgänglig under BSD-licensen och källorna för flac, metaflacoch plugins finns tillgängliga under GNU General Public License .

I sina uttalade mål uppmuntrar FLAC -projektet sina utvecklare att inte implementera kopieringsförebyggande funktioner ( DRM ) av något slag.

Design

Ljudkällor som kodas till FLAC reduceras vanligtvis till 50–70% av sin ursprungliga storlek, liknande andra förlustfria format, även om den slutliga storleken beror på densiteten och amplituden för musiken som komprimeras, och med viss musik kan filstorleken vara reduceras med så mycket som 80%.

Källkodare

  • FLAC-formatet stöder endast heltalsprover , inte flytpunkt . Det kan hantera alla PCM- bitars upplösning från 4 till 32 bitar per sampel, alla samplingsfrekvens från en  Hz till 65.535 Hz i steg om 1 Hz eller från 10 Hz till 655.350 Hz i 10 steg om Hz, och vilken som helst antal kanaler från 1 till 8. Hittills (version 1.3.3 av referenskodaren) är FLAC -kodning begränsad till 24 bitar per sampel eftersom det inte finns någon kodare för 32 bitar per sampel.
  • Kanaler kan i vissa fall grupperas, till exempel stereo och 5.1 -kanals surround , för att dra fördel av interkanalskorrelationer för att öka komprimeringen.
  • CRC -kontrollsummor används för att identifiera skadade ramar när de används i ett streamingprotokoll. Filen innehåller också en komplett MD5 -hash av rå PCM -ljud i dess STREAMINFO -metadatahuvud . FLAC tillåter en risparameter mellan 0 och 16.
  • FLAC använder linjär förutsägelse för att konvertera ljudproverna. Det finns två steg, prediktorn och felkodningen. Prediktorn kan vara en av fyra typer (Zero, Verbatim, Fixed Linear och Finite Impulse Response (FIR) Linear). Skillnaden mellan prediktorn och den faktiska provdata beräknas och kallas rest. Resten lagras effektivt med Golomb-Ris-kodning . Den använder också körningslängdskodning för block av identiska prover, till exempel tysta passager.

Metadata

  • FLAC stöder ReplayGain .
  • För taggning använder FLAC samma system som Vorbis -kommentarer .
  • LibFLAC API är organiserat i strömmar, sökbara strömmar och filer (listade i ordning för ökande abstraktion från basflac -bitströmmen).
  • De flesta FLAC -program kommer i allmänhet att begränsa sig till kodning/avkodning med libFLAC på filnivågränssnittet.

Kompressionsnivåer

libFLAC använder en komprimeringsnivåparameter som varierar från 0 (snabbast) till 8 (långsammast). De komprimerade filerna är alltid perfekta, förlustfria representationer av originaldata. Även om komprimeringsprocessen innebär en avvägning mellan hastighet och storlek, är avkodningsprocessen alltid ganska snabb och inte beroende av komprimeringsnivån.

Enligt ett .WAV -riktmärke som körs med en Athlon XP 2400+ tar det betydligt mer tid att använda högre priser över standardnivån −5 att koda utan verkliga vinster i platsbesparingar.

Komprimeringsalternativ Original Komprimerad Varaktighet Förhållande Kodningstid Kodningshastighet Avkodningstid Avkodningshastighet
−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 × långsammare) 01:36 124 ×
−6 2.030 GiB 1.334 GiB 03:18:21 65,71% (−4,96, −0,01)% 03:51 52 × (2,6 × långsammare) 01:36 124 ×
−7 2.030 GiB 1.333 GiB 03:18:21 65,67% (−5, −0,04)% 07:47 25 × (5.3 × långsammare) 01:36 123 ×
−8 2.030 GiB 1.329 GiB 03:18:21 65,47% (−5,2, −0,2)% 10:17 19 × (7 × långsammare) 01:40 120 ×
−8 -A nyckel (0,5) -A platt 2.030 GiB 1.328 GiB 03:18:21 65,40% (−5,27, −0,07)% 16:39 12 × (11 × långsammare) 01:35 125 ×

Jämförelse med andra format

FLAC är speciellt utformat för effektiv packning av ljuddata, till skillnad från förlustfria algoritmer för allmänna ändamål som DEFLATE , som används i ZIP och gzip . Även om ZIP kan minska storleken på en ljudfil med CD-kvalitet med 10–20%, kan FLAC minska storleken på ljuddata med 40–50% genom att dra fördel av ljudets egenskaper.

De tekniska styrkorna hos FLAC jämfört med andra förlustfria format ligger i dess förmåga att strömma och avkoda snabbt, oberoende av komprimeringsnivå.

Eftersom FLAC är ett förlustfritt schema är det lämpligt som arkivformat för ägare av CD -skivor och andra medier som vill bevara sina ljudsamlingar. Om originalmedia går förlorade, skadade eller slitna, säkerställer en FLAC -kopia av ljudspåren att en exakt kopia av originaldata kan återställas när som helst. En exakt återställning från en förlorad kopia (t.ex. MP3 ) av samma data är omöjlig. FLAC är förlustfritt innebär att det är mycket lämpligt för omkodning t.ex. till MP3, utan den normalt förknippade kvalitetskvalitetsförlusten mellan ett förlustformat och ett annat. En CUE -fil kan valfritt skapas när en CD -skiva rippas. Om en CD-skiva läses och rippas perfekt till FLAC-filer, tillåter CUE-filen senare att bränna en ljud-CD som är identisk i ljuddata med den ursprungliga CD-skivan, inklusive spårordning och pregap , men exklusive CD-text och andra ytterligare data som t.ex. text och CD+G -grafik.

Adoption och implementeringar

Referensimplementeringen av FLAC implementeras som libFLAC core encoder & decoder library, med det huvudsakliga distribuerbara programmet flacsom referensimplementering av libFLAC API. Detta codec API är också tillgängligt i C ++ som libFLAC ++. Referensimplementeringen av FLAC kompileras på många plattformar, inklusive de flesta Unix (t.ex. Solaris , BSD ) och Unix-liknande (inklusive Linux ), Microsoft Windows , BeOS och OS/2 operativsystem. Det finns byggsystem för autoconf / automake , MSVC , Watcom C och Xcode . Det finns för närvarande inget flerkärniga stöd libflac, men verktyg som GNU parallellt och olika grafiska frontends kan användas för att snurra upp flera instanser av kodaren.

FLAC -uppspelningsstöd i bärbara ljudenheter och dedikerade ljudsystem är begränsat jämfört med format som MP3 eller okomprimerad PCM . FLAC -stöd ingår som standard i enheterna Windows 10 , Android , BlackBerry 10 och Jolla .

Under 2014 introducerade flera mobilmarknadsföretag på eftermarknaden multimedielösningar som inkluderar stöd för FLAC. Dessa inkluderar NEX -serien från Pioneer Electronics och VX404 och NX404 från Clarion.

Den European Broadcasting Union (EBU) har antagit FLAC format för distribution av hög ljudkvalitet över dess Euroradio nätverk. Den Windows -operativsystemet har stött infödda FLAC integration sedan introduktionen av Windows 10 Android-operativsystem har stött infödda FLAC uppspelning sedan version 3.1. macOS High Sierra och iOS 11 lägger till stöd för uppspelning av inbyggt FLAC.

Bland annat använde Pono -musikspelaren och streamingtjänsten FLAC -formatet. Bandcamp insisterar på ett förlustfritt format för uppladdning och har FLAC som nedladdningsalternativ. Den Wikimedia Foundation sponsrade en fri och öppen källkod på nätet ECMAScript FLAC verktyg för webbläsare som stöder de nödvändiga HTML5 funktioner.

FLAC -stöd från olika operativsystem
Microsoft Windows Mac OS Linux Android BlackBerry OS iOS
Codec -stöd Ja Ja Ja Ja Ja Ja
Behållarstöd 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)
Anteckningar Support introduceras i Windows 10. Support introduceras i High Sierra. FLAC kan behöva installeras beroende på distribution . Support introduceras i Android 3.1 Support introduceras i BlackBerry OS 5.0 Support introduceras i iOS 11 (men beror på vilken hårdvara som används).

Olika andra behållare stöds, oberoende av det använda operativsystemet, beroende på använd uppspelningsprogramvara.

Se även

Referenser