La compressió de dades, aplicada al món de la informàtica, consisteix en el procés de codificació de dades utilitzant el mínim nombre possible de bits, o unitats d'informació. Això es pot aconseguir gràcies a la utilització d'esquemes de codificat o còdecs. La compressió només funciona si tant l'emissor com el receptor de la informació del missatge han acordat a priori un esquema concret de codificat. Per exemple, podríem acordar que a partir d'aquesta línia de text escriurem cp en comptes de compressió, això ens estalviaria uns quants bits i faria que l'arxiu final ocupés menys. Però perquè el lector d'aquest article comprengui el significat de cp hem d'informar-lo amb anterioritat (ha de conèixer l'esquema de codificat).
Principalment, la compressió és possible gràcies al fet que al món real, les dades són molt redundants, o bé són representades en una «forma humana», és a dir, fàcils d'interpretar per tots nosaltres però no representats d'una manera òptima. La compressió és important perquè ens permet d'estalviar recursos que resultarien cars, com ara espai de disc o amplada de banda en la nostra xarxa. Per això s'han creat diversos tipus d'algorismes de compressió segons el tipus de dades que volem comprimir. Bàsicament, es podrien dividir entre els que tenen pèrdues per a imatge, so i vídeo, i els que són sense pèrdua per desar dades, programes, o informació que no pugui ser alterada.
La compressió és un cas particular de la codificació, que destaca perquè el codi resultant té menor mida que l'original.
La compressió de dades consisteix en la reducció del volum d'informació tractable (processar, transmetre o gravar). En principi, amb la compressió es pretén transportar la mateixa informació, però utilitzant la menor quantitat d'espai.
L'espai que ocupa una informació codificada (dades, senyal digital, etc.) sense compressió és el quocient entre la freqüència de mostreig i la resolució. Per tant, com més bits s'empren major serà la mida del fitxer. No obstant això, la resolució ve imposada pel sistema digital amb què es treballa i no es pot alterar el nombre de bits a voluntat, de manera que s'utilitza la compressió, per transmetre la mateixa quantitat d'informació que ocuparia una gran resolució en un nombre inferior de bits.
La compressió de dades es basa fonamentalment a buscar repeticions en sèries de dades per després emmagatzemar només la dada amb el nombre de vegades que es repeteix. Així, per exemple, si en un fitxer apareix una seqüència com «aaaaaa», ocupant 6 bytes es podria emmagatzemar simplement «6A» que ocupa només 2 bytes, en algorisme RLE.
En realitat, el procés és molt més complex, ja que rarament s'aconsegueix trobar patrons de repetició tan exactes (excepte en algunes imatges). S'utilitzen algorismes de compressió.
Algorismes de compressió D'una banda, alguns busquen sèries llargues que després codifiquen en formes més breus. D'altra banda, alguns algorismes, com l'algorisme de Huffman, examinen els caràcters més repetits per després codificar de forma més curta els que més es repeteixen. Altres, com el LZW, construeixen un diccionari amb els patrons trobats, als quals es fa referència de manera posterior. També aquesta una manera de comprimir que és codificant els bytes parells és molt senzill i fàcil d'entendre.
A l'hora de parlar de compressió cal tenir presents dos conceptes: Redundància: dades que són repetitives o previsibles Entropia: la informació nova o essencial que es defineix com la diferència entre la quantitat total de dades d'un missatge i la seva redundància.
La informació que transmeten les dades pot ser de tres tipus: Redundant: informació repetitiva o previsible. Irrellevant: informació que no podem apreciar i l'eliminació per tant no afecta el contingut del missatge. Per exemple, si les freqüències que és capaç de captar l'oïda humana estan entre 16/20 Hz i 16.000/20.000 Hz, serien irrellevants aquelles freqüències que estiguessin per sota o per sobre d'aquests valors. Bàsica: la rellevant. La que no és ni redundant ni irrellevant. La que ha de ser transmesa perquè es pugui reconstruir el senyal.
Tenint en compte aquests tres tipus d'informació, s'estableixen tres tipologies de compressió de la informació: Sense pèrdues reals: és a dir, transmetent tota l'entropia del missatge (tota la informació bàsica i irrellevant, però eliminant la redundant). Subjectivament sense pèrdues: és a dir, a més d'eliminar la informació redundant s'elimina també la irrellevant. Subjectivament amb pèrdues: s'elimina certa quantitat d'informació bàsica, de manera que el missatge es reconstruirà amb errors perceptibles però tolerables (per exemple: la videoconferència).
Diferències entre compressió amb pèrdua i sense L'objectiu de la codificació és sempre reduir la mida de la informació, intentant que aquesta reducció de mida no afecti el contingut. No obstant això, la reducció de dades pot afectar o no a la qualitat de la informació: Compressió sense pèrdua: les dades abans i després de comprimir-són exactes a la compressió sense pèrdua. En el cas de la compressió sense pèrdua més compressió només implica més temps de procés. El bitrate sempre és variable a la compressió sense pèrdua. S'utilitza principalment en la compressió de text. Un algorisme de compressió amb pèrdua pot eliminar dades per reduir encara més la mida, de manera que se sol reduir la qualitat. A la compressió amb pèrdua el bit rate pot ser constant o variable. Cal tenir en compte que una vegada realitzada la compressió, no es pot obtenir el senyal original, encara que sí una aproximació la semblança amb l'original dependrà del tipus de compressió. S'utilitza principalment en la compressió d'imatge, vídeo i so.
Usos Imatge
La codificació d'entropia es va originar a la dècada de 1940 amb la introducció de la codificació Shannon-Fano, la base de la codificació Huffman que es va desenvolupar el 1950. La codificació per transformada es remunta a finals de la dècada de 1960, amb la introducció de la transformada ràpida de Fourier (FFT) en 1968 i la transformada Hadamard en 1969.
Una important tècnica de compressió d'imatges és la transformada de cosinus discreta (DCT), una tècnica desenvolupada a principis de la dècada de 1970. La DCT és la base del JPEG, un format de compressió amb pèrdues que va ser introduït pel Joint Photographic Experts Group (JPEG) en 1992. JPEG redueix en gran manera la quantitat de dades necessàries per representar una imatge a costa d'una reducció relativament petita de la qualitat de la mateixa i s'ha convertit en el format d'un fitxer d'imatge més utilitzat. El seu algorisme de compressió altament eficient basat en la DCT va ser en gran part responsable de l'àmplia proliferació d'imatges digitals i fotos digitals.
Lempel-Ziv-Welch (LZW) és un algorisme de compressió sense pèrdues desenvolupat el 1984. S'utilitza en el format GIF, introduït el 1987. DEFLATE, un algorisme de compressió sense pèrdues especificat el 1996, s'utilitza en el format Portable Network Graphics (PNG).
La compressió wavelet, l'ús de wavelets en la compressió d'imatges, va començar després del desenvolupament de la codificació DCT. L'estàndard JPEG 2000 es va introduir l'any 2000. A diferència de l'algorisme DCT utilitzat pel format JPEG original, JPEG 2000 utilitza al seu lloc algorismes de transformada d'ondeta discreta (DWT). La tecnologia JPEG 2000, que inclou l'extensió Motion JPEG 2000, va ser seleccionada com l'estàndard de codificació de vídeo per al cinema digital el 2004.
Àudio
La compressió de dades d'àudio, que no s'ha de confondre amb la compressió de rang dinàmic, té el potencial de reduir l'amplada de banda i els requisits d'emmagatzematge de les dades d'àudio. Els algorismes de compressió d'àudio s'implementen a programari com a còdecs d'àudio. Tant en la compressió amb pèrdues com en la compressió sense pèrdues, es redueix la redundància de la informació, utilitzant mètodes com la codificació, la quantització, la transformada de cosinus discreta i la predicció lineal per reduir la quantitat d'informació utilitzada per representar les dades sense comprimir.
Els algorismes de compressió d'àudio amb pèrdues proporcionen una major compressió i s'utilitzen en nombroses aplicacions d'àudio, com ara Vorbis i MP3. Aquests algoritmes es basen gairebé tots en la psicoacústica per eliminar o reduir la fidelitat dels sons menys audibles, reduint així l'espai necessari per emmagatzemar-los o transmetre'ls.
La compensació acceptable entre la pèrdua de qualitat d'àudio i la mida de transmissió o emmagatzematge depèn de l'aplicació. Per exemple, un disc compacte (CD) de 640 MB conté aproximadament una hora de música d'alta fidelitat sense comprimir, menys de 2 hores de música comprimida sense pèrdues o 7 hores de música comprimida en el format MP3 a una taxa de bits mitjana. Una gravadora de so digital pot emmagatzemar normalment unes 200 hores de parla clarament intel·ligible a 640 MB.The Olympus WS-120 digital speech recorder, according to its manual, can store about 178 hours of speech-quality audio in .WMA format in 500 MB of flash memory.
La compressió d'àudio sense pèrdues produeix una representació de les dades digitals que es pot descodificar en un duplicat digital exacte de l'original. Les ràtios de compressió se situen al voltant del 50-60 % de la mida original, que és similar als de la compressió genèrica de dades sense pèrdues. Els còdecs sense pèrdues utilitzen l'ajust de corbes o la predicció lineal com a base per estimar el senyal. Els paràmetres que descriuen l'estimació i la diferència entre l'estimació i el senyal real es codifiquen per separat.
Hi ha diversos formats de compressió d'àudio sense pèrdues. Vegeu llista de còdecs sense pèrdues per obtenir una llista. Alguns formats estan associats a un sistema diferent, com Direct Stream Transfer, utilitzat en Super Audio CD i Meridian Lossless Packing, utilitzat en DVD-Audio, Dolby TrueHD, Blu-ray i HD DVD.
Alguns formats de fitxer d'àudio presenten una combinació d'un format amb pèrdues i una correcció sense pèrdues; això permet eliminar la correcció per obtenir fàcilment un fitxer amb pèrdues. Aquests formats inclouen MPEG-4 SLS (Scalable to Lossless), WavPack i OptimFROG DualStream.
Quan es processaran fitxers d'àudio, ja sigui per compressió posterior o per a edició, és desitjable treballar a partir d'un original inalterat (sense comprimir o comprimit sense pèrdues). El processament d'un fitxer comprimit sense pèrdues per a alguna finalitat sol produir un resultat final inferior a la creació del mateix fitxer comprimit a partir d'un original sense comprimir. A més de per a l'edició o la barreja de so, la compressió d'àudio sense pèrdues s'utilitza sovint per a l'emmagatzematge d'arxius, o com a còpies mestres.
Compressió d'àudio amb pèrdues miniatura|Comparació d'espectrogrames d'àudio en un format sense comprimir i en diversos formats amb pèrdues. Els espectrogrames amb pèrdues mostren bandlimiting de les freqüències més altes, una tècnica comuna associada a la compressió d'àudio amb pèrdues. La compressió d'àudio amb pèrdues s'utilitza en una àmplia gamma d'aplicacions. A més de les aplicacions independents de reproducció d'arxius en reproductors MP3 o ordinadors, els fluxos d'àudio comprimits digitalment s'utilitzen a la majoria dels DVD de vídeo, la televisió digital, els mitjans de transmissió a Internet, la ràdio per satèl·lit i per cable, i cada vegada més a les emissions de ràdio terrestre. La compressió amb pèrdues sol aconseguir una compressió molt més gran que la compressió sense pèrdues, en descartar les dades menys crítiques basant-se en optimitzacions psicoacústiques.