FLAC - FLAC

Gratis Lossless Audio Codec
FLAC -logo vektor.svg
FLAC 1.3.3 screenshot.png
Utvikler (er) Xiph.Org Foundation , Josh Coalson, Erik de Castro Lopo
Første utgivelse 20. juli 2001 ; 20 år siden ( 2001-07-20 )
Stabil utgivelse
1.3.3 / 4. august 2019 ; 2 år siden ( 4. august 2019 )
Oppbevaringssted
Operativsystem Kryssplattform
Type Codec
Tillatelse Kommandolinjeverktøy: GNU GPL
Libraries: BSD
Nettsted xiph .org /flac
Gratis Lossless Audio Codec
Filnavn forlengelse
.flac
Internett -medietype
lyd/flac
Uniform Type Identifier (UTI) org.xiph.flac
Magisk nummer fLaC
Type format Lyd
Standard xiph .org /flac /format .html
Åpent format ? Ja

FLAC ( / f l æ k / ; Free Lossless Audio Codec ) er et lydkodingsformat for tapsfri komprimering av digital lyd , utviklet av Xiph.Org Foundation , og er også navnet på det gratis programvareprosjektet som produserer FLAC -verktøyene, programvare som inneholder en kodekimplementering . Digital lyd komprimert av FLACs algoritme kan vanligvis reduseres til mellom 50 og 70 prosent av originalstørrelsen og dekomprimeres til en identisk kopi av de originale lyddataene.

FLAC er et åpent format med royalty-fri lisensiering og en referanseimplementering som er gratis programvare . FLAC har støtte for metadatamerking , albumomslag og hurtig søk.

Historie

Utviklingen ble startet i 2000 av Josh Coalson. Bitstrømformatet ble frosset da FLAC gikk inn i beta-fasen med versjon 0.5 av referanseimplementeringen 15. januar 2001. Versjon 1.0 ble utgitt 20. juli 2001.

29. januar 2003 kunngjorde Xiph.Org Foundation og FLAC -prosjektet innlemmelse av FLAC under Xiph.org -banneret. Xiph.org er hjemmet til andre gratis komprimeringsformater som Vorbis , Theora , Speex og Opus .

Versjon 1.3.0 ble utgitt 26. mai 2013, da utviklingen ble flyttet til Xiph.org git -depotet.

Sammensetning

FLAC -prosjektet består av:

  • Strømformatene
  • Et enkelt beholderformat for strømmen, også kalt FLAC (eller Native FLAC )
  • libFLAC, et bibliotek med referansekodere og dekodere, og et metadata -grensesnitt
  • libFLAC ++, en objektorientert innpakning rundt libFLAC
  • flac, et kommandolinjeprogram basert på libFLAC for å kode og dekode FLAC-strømmer
  • metaflac, en kommandolinjemetadata-editor for .flac-filer og for å bruke ReplayGain
  • Inngangsprogrammer for forskjellige musikkspillere ( Winamp , XMMS , foobar2000 , musikCube og mange flere)
  • Med Xiph.org -inkorporering, Ogg -beholderformatet, egnet for streaming (også kalt Ogg FLAC )

Spesifikasjonen av strømformatet kan implementeres av alle uten forhåndstillatelse (Xiph.org forbeholder seg retten til å angi FLAC -spesifikasjonen og sertifisere samsvar), og verken FLAC -formatet eller noen av de implementerte kodings- eller dekodingsmetodene dekkes av noe patent . Den referansen implementeringen er fri programvare . Den kildekoden for libFLAC og libFLAC ++ er tilgjengelig under BSD-lisens , og kildene for flac, metaflacog plugins er tilgjengelig under GNU General Public License .

I de uttalte målene oppfordrer FLAC -prosjektet utviklerne til ikke å implementere kopiforebyggende funksjoner ( DRM ) av noe slag.

Design

Lydkilder som er kodet til FLAC reduseres vanligvis til 50–70% av originalstørrelsen, i likhet med andre formater uten tap, selv om den endelige størrelsen avhenger av tettheten og amplituden til musikken som komprimeres, og med litt musikk kan filstørrelsen være redusert med hele 80%.

Kildekoder

  • FLAC-formatet støtter bare heltallsprøver , ikke flytende punkt . Den kan håndtere hvilken som helst PCM -bitoppløsning fra 4 til 32 bits per prøve, hvilken som helst samplingsfrekvens fra 1  Hz til 65 535 Hz i trinn på 1 Hz eller fra 10 Hz til 655 350 Hz i trinn på 10 Hz og et hvilket som helst antall kanaler fra 1 til 8. Til dags dato (versjon 1.3.3 av referansekoder) er FLAC -koding begrenset til 24 bits per prøve siden det ikke finnes noen koder for 32 bits per prøve.
  • Kanaler kan i noen tilfeller grupperes, for eksempel stereo og 5.1 -kanals surround , for å dra nytte av korrelasjoner mellom kanaler for å øke komprimering.
  • CRC -kontrollsummer brukes til å identifisere ødelagte rammer når de brukes i en streamingprotokoll. Filen inneholder også en komplett MD5 -hash av rå PCM -lyd i STREAMINFO -metadatahodet. FLAC åpner for en Rice -parameter mellom 0 og 16.
  • FLAC bruker lineær prediksjon for å konvertere lydprøver. Det er to trinn, prediktoren og feilkodingen. Prediktoren kan være en av fire typer (Zero, Verbatim, Fixed Linear og Finite Impulse Response (FIR) Lineær). Forskjellen mellom prediktoren og de faktiske prøvedataene er beregnet og er kjent som residualen. Resten lagres effektivt ved bruk av Golomb-Rice-koding . Den bruker også kodelengde for blokker av identiske prøver, for eksempel stille passasjer.

Metadata

  • FLAC støtter ReplayGain .
  • For tagging bruker FLAC det samme systemet som Vorbis -kommentarer .
  • LibFLAC API er organisert i strømmer, søkbare strømmer og filer (oppført i rekkefølge for økende abstraksjon fra den grunnleggende FLAC -bitstrømmen).
  • De fleste FLAC -applikasjoner vil vanligvis begrense seg til å kode/dekode ved hjelp av libFLAC på filnivågrensesnittet.

Komprimeringsnivå

libFLAC bruker en komprimeringsnivåparameter som varierer fra 0 (raskeste) til 8 (tregeste). De komprimerte filene er alltid perfekte, tapsfrie representasjoner av de originale dataene. Selv om komprimeringsprosessen innebærer en avveining mellom hastighet og størrelse, er dekodingsprosessen alltid ganske rask og ikke avhengig av komprimeringsnivået.

Ifølge en .WAV -referanse som kjører med en Athlon XP 2400+, tar bruk av høyere priser over standardnivå −5 betydelig mer tid å kode uten reelle gevinster i plassbesparelser.

Komprimeringsalternativ Opprinnelig Komprimert Varighet Forhold Kodingstid Kodingshastighet Avkodningstid Dekodingshastighet
−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 × tregere) 01:36 124 ×
−6 2.030 GiB 1.334 GiB 03:18:21 65,71% (−4,96, −0,01)% 03:51 52 × (2,6 × tregere) 01:36 124 ×
−7 2.030 GiB 1.333 GiB 03:18:21 65,67% (−5, −0,04)% 07:47 25 × (5,3 × tregere) 01:36 123 ×
−8 2.030 GiB 1.329 GiB 03:18:21 65,47% (−5,2, −0,2)% 10:17 19 × (7 × tregere) 01:40 120 ×
−8 -A tukey (0.5) -En flattopp 2.030 GiB 1.328 GiB 03:18:21 65,40% (−5,27, −0,07)% 16:39 12 × (11 × tregere) 01:35 125 ×

Sammenligning med andre formater

FLAC er spesielt designet for effektiv pakking av lyddata, i motsetning til tapsfrie algoritmer for generelle formål som DEFLATE , som brukes i ZIP og gzip . Selv om ZIP kan redusere størrelsen på en lydfil med CD-kvalitet med 10–20%, er FLAC i stand til å redusere størrelsen på lyddata med 40–50% ved å dra fordel av lydens egenskaper.

De tekniske styrkene til FLAC sammenlignet med andre tapsfrie formater ligger i dets evne til å bli streamet og dekodet raskt, uavhengig av kompresjonsnivå.

Siden FLAC er et tapsfritt opplegg, er det egnet som arkivformat for eiere av CD -er og andre medier som ønsker å bevare lydsamlingene sine. Hvis det originale mediet blir tapt, skadet eller utslitt, sikrer en FLAC -kopi av lydsporene at en eksakt kopi av originaldataene kan gjenopprettes når som helst. En eksakt gjenoppretting fra en tapende kopi (f.eks. MP3 ) av de samme dataene er umulig. FLAC er tapsfri betyr at den er meget egnet for transkoding, f.eks. Til MP3, uten at det normalt er forbundet med tap av transkodingskvalitet mellom et tapformat og et annet. En CUE -fil kan eventuelt opprettes når du ripper en CD. Hvis en CD leses og rippes perfekt til FLAC-filer, tillater CUE-filen senere brenning av en lyd-CD som er identisk i lyddata til den originale CD-en, inkludert sporrekkefølge og pregap , men unntatt CD-tekst og andre tilleggsdata som f.eks. tekster og CD+G -grafikk.

Adopsjon og implementeringer

Referanseimplementeringen av FLAC er implementert som libFLAC kjernekoder og dekoderbibliotek, med det viktigste distribuerbare programmet flacsom referanseimplementering av libFLAC API. Denne kodek -API -en er også tilgjengelig i C ++ som libFLAC ++. Referanseimplementeringen av FLAC kompileres på mange plattformer, inkludert de fleste Unix (for eksempel Solaris , BSD ) og Unix-lignende (inkludert Linux ), Microsoft Windows , BeOS og OS/2 operativsystemer. Det er build-systemer for autoconf / automake , MSVC , Watcom C og Xcode . Det er for øyeblikket ingen multicore -støtte i libFLAC, men verktøy som GNU parallell og forskjellige grafiske frontender kan brukes til å spinne opp flere forekomster av koderen.

Støtte for FLAC -avspilling i bærbare lydenheter og dedikerte lydsystemer er begrenset sammenlignet med formater som MP3 eller ukomprimert PCM . FLAC -støtte er inkludert som standard i Windows 10 , Android , BlackBerry 10 og Jolla -enheter.

I 2014 introduserte flere ettermarkedet mobile elektronikkselskaper multimedieløsninger som inkluderer støtte for FLAC. Disse inkluderer NEX -serien fra Pioneer Electronics og VX404 og NX404 fra Clarion.

Den europeiske kringkastingsunionen (EBU) har vedtatt FLAC-formatet for distribusjon av høykvalitets lyd over sin Euroradio nettverk. Den Windows -operativsystemet har støttet opprinnelig FLAC integrasjon siden introduksjonen av Windows 10. Android-operativsystemet har støttet opprinnelig FLAC avspilling siden versjon 3.1. macOS High Sierra og iOS 11 legger til innebygd støtte for FLAC -avspilling.

Blant annet Pono musikkspiller og streamingtjeneste brukte FLAC -formatet. Bandcamp insisterer på et tapsfritt format for opplasting, og har FLAC som et nedlastingsalternativ. Den Wikimedia Foundation sponset en fri og åpen kildekode online ECMAScript FLAC verktøy for nettlesere som støtter de nødvendige HTML5 funksjoner.

FLAC -støtte fra forskjellige operativsystemer
Microsoft Windows Mac os Linux Android BlackBerry OS iOS
Codec -støtte Ja Ja Ja Ja Ja Ja
Beholderstøtte 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)
Merknader Støtte introdusert i Windows 10. Støtte introdusert i High Sierra. FLAC må kanskje installeres avhengig av distribusjonen . Støtte introdusert i Android 3.1 Støtte introdusert i BlackBerry OS 5.0 Støtte introdusert i iOS 11 (men avhenger av maskinvaren som brukes).

Ulike andre beholdere støttes, uavhengig av det brukte operativsystemet, avhengig av brukt avspillingsprogramvare.

Se også

Referanser

Eksterne linker