FLAC
| Extensió del fitxer | |
|---|---|
| MIME | audio/x-flac |
| Desenvolupador(s) | Xiph.org |
|---|---|
| Versió estable | 1.2.1 / 17 de setembre 2007 |
| Sistema operatiu | Plataforma múltiple |
| Tipus | còdec d'àudio format d'àudio |
| Llicència | GNU General Public License. GPL BSD licenses. BSD |
| Lloc web | flac.sf.net |
FLAC és l'acrònim de Free Lossless Audio Codec (còdec d'àudio Lliure i Sense Pèrdues), que es com es coneix aquest format contenidor d'informació d'àudio, i també el còdec emprat per a codificar aquesta informació. El fet de ser un còdec sense pèrdues ve donat ja que la informació sonora que s'emmagatzema dins d'aquest format és comprimida de tal manera que un cop decodificada no afecta per res a la qualitat sonora de l'àudio original. El desenvolupament i creació del FLAC es van duur a terme per Xiphophorus, actualment coneguda com Xiph.org Foundation; altrament coneguda per projectes com ara el Vorbis, l'Icecast, Theora i d'altres.
Taula de continguts |
Visió general [modifica]
Es pot considerar que el FLAC és un còdec d'àudio únic si es tenen en compte alguns aspectes ja que no és el fet de ser sense pèrdues l'única cosa que el caracteritza; sinó això juntament amb la seva accessibilitat donat que és totalment no-propietari, no relacionat amb patents privades i de codi obert; és a dir, tota la documentació relacionada amb la seva implementació és totalment accessible per a tothom. Cal destacar també que és un format completament gratuït de fer servir, fet que a vegades no és té en compte. Totes aquestes característiques de facilitat d'accés i lliure distribució és el que està convertint el FLAC en un format atractiu per als desenvolupadors d'aplicacions i també en un dels formats i còdecs d'àudio sense pèrdues més estès i suportat tant per dispositius físics com per aplicacions de programari.
El projecte FLAC [modifica]
El projecte d'on va sorgir el FLAC no només inclou el format en sí, sinó varies eines i documentació. Les parts principals que conformen el projecte són aquestes:
- El còdec amb el qual es codifica la informació d'àudio.
- El format contenidor on hi hauran les dades codificades amb FLAC.
- La llibreria libFLAC que defineix la codifcació i decodificació de les dades, així com la manera amb que s'inclouen les metadades.Sota llicència BSD.
- El grup de classes libFLAC++ que inclou les definicions de la llibreria libFLAC així com les seves estructures i funcions. Sota llicència BSD.
- El flac, una eina de l'ordre de comandes que serveix com a aplicació per a implementar les llibreries libFLAC, permetent codificar i descodificar la informació. Sota llicència GPL.
- El metaflac, una eina del mateix caire que el flac però que ens permet l'edició de les metadades dels contenidors .flac. Sota llicència GPL.
- Un munt de plug-ins d'entrada per a diversos reproductors i editors de pistes d'àudio(foobar2000,winamp,xmms...).
Característiques d'interès [modifica]
S'expliquen algunes de les possibilitats que poden interessar als usuaris finals de FLAC, sobretot en l'àmbit professional i del consum, més que de cares al desenvolupament tècnic.
- sense perdues: la codificació que s'aplica no comporta cap pèrdua de qualitat vers la informació que entra al codificador. Per a fer-ho cada trama de dades conté 16 bits de detecció d'errors (CRC). La informació global codificació també fa servir mètodes per assegurar la integritat del tot, incloent un espai per al MD5(de les dades sense codificar) a la capçalera de l'arxiu per d'aquesta manera comprovar la semblança amb la informació descodificada.
- ràpid: la potència computacional que requereix en procés de descodificació és molt menor a la del procés inversa. Així doncs la descodificació en temps real és molt més fàcil d'aconseguir fet que fa del FLAC una gran tria per a dispositius de maquinari descodificadors ja que no s'exigeix tanta potència.
- suport de maquinari: hi ha un ample ventall de dispositius i electrònica de consum com ara reproductors portàtils d'àudio o de sobretaula que suporten plenament els arxius codificats amb aquest còdec.
- flexibilitat en les metadades: el sistema que gestiona les metadades al FLAC suporta els tags, l'associació de cobertes d'àlbum, les taules d'indexació del contingut, i llistes cue(cue sheet).
- explorable: l'exploració del contingut és ràpida i arriba fins a nivell de mostra. Aquest fet el fa altament útil per a la seva reproducció fàcil i lleugera però sobretot molt més adient per a tasques d'edició on l'exploració del contingut és molt necessària i freqüent.
- "independència" de trames: les trames FLAC no depenen de les seves anteriors per a poder ser descodificades i reproduïdes. És a dir, cadascuna de les trames en les que es divideix conté prou informació com per ser descodificada per ella mateixa. Això ho fa apte per a aplicacions en temps real(streaming).
- resistent a l'error: la possibilitat que hi hagi un error és petita però possible; tanmateix; el fet que la informació es divideixi en trames fa que aquest error, que normalment afecta a una fracció de segon o de dimensions no molt majors, fa que aquest error no afecti més que a la trama en sí.
Programari útil [modifica]
Són inacabables les aplicacions que ens permeten treballar amb el format FLAC, es citen algunes de les més destacades en l'àmbit de la codificació, la descodificació(reproductors). Un fet a destacar és que no només són múltiples les aplicacions sinó que també són compatibles amb tota mena d'arquitectures.
Linux (altres *NIX, Solaris...) [modifica]
- Codificació
- Descodificació
Windows [modifica]
- Codificació
- Descodficació
- foobar2000.
- Quintessential Player.
- Renoise.
- Traktor 3.
- Winamp.
- Windows Media Player.
MAC OS X [modifica]
- Codificació
- Toast Titanium
- xACT.
- MacFLAC.
- Descodificació
- Flac-Importer
- Cog.
- Play.
- xACT
- MacFLAC.
Dispositius que el suporten [modifica]
- Microsoft Xbox
- Ipod
- iAudio.
- Squeezebox.
- Trekstor Vibez.
- Linn Klimax DS.
- Neuros OSD.
- Pioneer SC-LX90.
- Meizu M6.
- Rio Karma.
Característiques tècniques [modifica]
Fins a dia d'avui i per molt que s'ha intentat no existeix cap algorisme de compressió que sigui capaç de comprimir informació de qualsevol tipus sense que hi hagin pèrdues. És per això que els algorismes de compressió es centren sobretot en un àmbit concret de treball, i és en aquest àmbit on si és possible una compressió sense pèrdues. En el cas del FLAC i com és de suposar, aquest àmbit és la informació d'àudio, no vol dir això que tota entrada d'àudio serà comprimida en una proporció alta; el FLAC és especialment eficient quant a compressió de l'original en determinats tipus d'àudio. Dins de l'ambit de la informació d'àudio es poden trobar un ample ventall de sub-branques; podem estar tractant àudio de veu a baixa taxa de bits, àudio multicanal a alta taxa de bits...El FLAC aprofita el fet que dins de l'àudio és típic trobar-hi una alta correlació a nivell de mostra. Segons el tipus d'informació que tinguem seran els paràmetres de codificació els que ens permetin obtenir una compressió el més eficient possible.
Arquitectura de la codificació [modifica]
Com en la majoria de codificadors d'àudio, el procés de codificació emprant el FLAC passa per diferents fases:
- Blocking
La informació d'entrada és dividida en diversos blocs contigus, la mida d'aquests blocs pot variar, segons les nostres necessitats. No es pot determinar una mida estàndard òptima ja que depèn de diversos factors. El codificador oficial empra una mida fixa de bloc tot i que val a dir que el FLAC ens permet tenir diferents mides de bloc dins d'un mateix fluxe o contenidor. La mida del bloc que acabem triant tindrà una repercussió directe sobre el nivell de compressió que obtindrem, d'aquesta manera si la mida és massa petita estarem molt possiblement desaprofitant bits a causa de les capçaleres de les trames, en canvi si ens excedim en la mida dels blocs és molt probable que dins d'aquests el senyal canvii tant que no poguem trobar un predictor efectiu. És per això que el còdec FLAC estableix una mida mínima i màxima de bloc(16 i 65535 respectivament); dins d'aquest marge s'arriba a la mida òptima per a qualsevol tipus de data.
- Interchannel Decorrelation(decorrelació entre canals)
Parlant del cas més habitual i fàcil d'entendre, l'àudio stereo, on hi ha dos canals separats que són dret i esquerre; el codificador podria optar per varies opcions.
-
-
- Independent: canal dret i esquerre són codificats independentment.
- Mid-side: es creen dos senyals, un d'ells conté la mitja entre els dos canals i l'altre la diferència vers aquesta mitja (esquerra menys dret).
- Left-side: el canal esquerra i el canal diferència(dret) seran codificats.
- Right-side: el canal dret i canal diferència(esquerra) seran codificats.
-
Habitualment els mètodes més eficients són els dos últims.
- Prediction(Predicció):
En aquesta fase es crea una aproximació matemàtica del senyal, sovint molt més petita que el senyal original. Els mètodes de predicció són coneguts tant pel codificador com pel seu invers posterior, d'aquesta manera dins la trama tan sols caldrà incloure-hi els paràmetres emprats, fet que redueix molt la mida de la informació codificada. Actualment el FLAC fa servir quatre tipus diferents de predictors, tot i que el format FLAC permet l'ús de més tipus. fins i tot de combinacions d'aquests entre diferents blocs.
- Residual Coding(codificació residual):
En el cas que la descripció que ha fet el nostre predictor no sigui fidel a la dinàmica del nostre senyal original, la diferència entre aquestes dues ha de ser codificada de manera precisa ja que sinó podrien esdevenir-ne pèrdues. Quant més efectiu sigui el nostre predictor en la seva tasca, menys bits necessitarem per a codificar el nostre error residual. Normalment s'empra un sol mètode per a aquesta tasca, de cares al còdec: però d'igual manera que en els tipus de predictor, el format FLAC permet que s'utilitzin altres mètodes addicionals. També comparteix el fet de poder especificar diversos codificadors d'errors residuals en diferents bloc
Format del FLAC [modifica]
La informació dins dels contenidors FLAC es distribueix d'una determinada com en qualsevol tipus de format. El format actual reserva un determinat espai buit per a que les futures implementacions puguin emprar el mateix format sense haver de ser modificat, adaptant així vells i nous formats. Tots els valors que s'empren dins del format FLAc són del tipus integer(enter), així doncs no trobarem cap nombre quantitzat en coma flotant. La codificació utilitzada és l'arquitectura big-endian i a menys que s'especifiqui, tots els nombres son codificants de maner unsigned. Un fluxe d'informació FLAC conté al principi d'aquest una etiqueta amb el valor "fLaC", seguit d'un bloc de metadades que descriu les caracterÍstiques de la informació més generals i després d'aquest una sèrie de blocs més que ens donen informació d'altre tipus. Finalment, després dels blocs de metadades hi trobem les trames d'àudio. Hi ha fins a 128 tipus de blocs de metadades suportats al FLAC, actualment aquests són els que ens podem trobar:
- STREAMINFO
Aquest és el primer dels blocs de metadades que es troba dins del format. S'hi troba informació sobre les característiques de tot el flux FLAC, clars exemples en són la freqüència de mostreig, nombre de canals, nombre total de mostres...
- APPLICATION
L'utilitzen aplicacions externes a les oficials del FLAC, d'aquesta manera s'especifica què s'ha fet servir per a crec el flux. Cada aplicació té un identificador propi que et proporcionen els encarregats de gestionar el FLAC.
- PADDING
La informació que conté aquest bloc no és útil; normalment es deixa aquest espai ple d'informació inútil per a poder després editar-ne el contingut amb dades útils; és a dir, es reserva un espai per a poder emplenar-lo posteriorment.
- SEEKTABLE
Ens permet indexar els continguts de les trames per una instantània exploració. Tan sols pot haver-hi una sola taula d'exploració però amb infinits punts dins d'aquesta. No és necessària per a l'exploració de les dades però si que en facilita la tasca i en minimitza el retard que podria haver-hi.
- VORBIS_COMMENT
S'hi inclou informació que pot ser llegida per l'usuari, empra la codificació UTF-8.
- CUESHEET
Especialment útil per a emmagatzemar la informació de les llistes CUE que hi ha incloses als suports CD-DA. D'aquesta manera al passar un CD-DA a FLAC es manté aquests informació.
- PICTURE
Aquest bloc es fa servir per associar normalment cobertes dels discs a les pistes codificades en FLAC.
Taula comparativa de funcionalitats [modifica]
Molt sovint un dels factos que més es tenen en compte a l'hora de triar el nostre còdec d'àudio és la compressió que ens aporta; tanmateix, depenent de la nostra aplicació final i si es consideren els medis dels que disposa l'usuari no sempre ens convé el més ràpid ni el més compressor. En aquesta taula es demostra perquè el FLAC és una bona tria en molts dels casos, comparant-ne les funcionalitats més destacades amb les mateixes d'altres còdecs d'àudio sense pèrdues. Els que es descriuen a la taula són:
| Còdec | Cod | Decod | Comp | Flexibilitat | Robust error | Exp | Tagging | Dispositius | Programari | Híbrid/Amb pèrdues | Streaming | Codi Obert | Multi- canal |
Alta resolució | SO |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Wavpack | Molt ràpid |
Molt ràpid | 58% | Molt bona | Si | Si | ID3/APE | Limitat | Bo | Si | Si | Si | Si | Si | Tots |
| ALAC | Mitjana | Ràpid | 58.5% | Dolenta | No | Si | QT tags | Bo | Dolent | No | Si | Si(descodif) | Si | Si | Win/MAC |
| FLAC | Ràpid | Molt ràpid |
58.7% | Molt bona | Si | Si | VorbisTag | Molt bo | Molt bo | No | Si | Si | Si | Si | Tots |
| Monkey's | Ràpid | Mitjà | 55.5% | Molt bona | No | Si | ID3/APE | Limitat | Bo | No | No | Si | No | Si | Tots |
| OptimFROG | Lent | Mitjà | 54.7% | Molt bona | Si | Si | ID3/APE | No | Poc | Si | Si | No | No | Si | Win/Mac /Linux |
| Shorten | Molt Ràpid | Molt Ràpid | 63.5% | Dolent | No | Si | No | Limitat | Molt bo | No | No | Si | No | No | Tots |
-% Compressió quant més baix més comprimeix
-Codificació i decod: velocitats que triga en fer-ho.
-Dispostius i Programari: suport en els dos camps
-Exp.: contingut de la trama explorable a nivell de mostra
Enllaços d'interès [modifica]
- Web oficial del Projecte: documentació, taules comparatives, especificacions...
- Web oficial de Xiph.org Foundation
- Comparatives de còdecs d'àudio sense pèrdues
- Comparativa d'HydrogenAudio
- Comparativa quant a compressió i velocitat de diversos còdecs sense pèrdues
|
||||||||||||||||||||||||||||||||||||||||
| A Wikimedia Commons hi ha contingut multimèdia relatiu a: FLAC |