Datu-konpresio

Konputazio zientzian  datu-konpresioa tratatu beharreko datuen bolumenaren murriztea da, informazio jakin bat ahalik eta espazio kopuru txikiena erabiliz adierazteko. Datu-konpresioaren ekintza  konpresio izendatzen da, eta kontrakoa deskonpresioa.

Konpresiorik gabeko informazio kodetu batek (datuak, seinale digitala, eta abar) hartzen duen lekua  laginketaren maiztasunaren eta  bereizmenaren arteko zatidura da. Beraz, zenbat eta bit gehiago erabili, orduan eta handiagoa izango da fitxategiaren tamaina. Dena den, lanerako erabiltzen den  sistema digitalak ezartzen du bereizmena eta biten kopurua ezin da nahi bezala aldatu; hori dela eta, konpresioa erabiltzen da, bereizmen handiko informazio kantitate bera bit kopuru txikiagoan transmititzeko.

Datu konpresiorako erabiltzen diren algoritmoak zenbakiak zenbaki lehenen biderketa moduan adierazteko algortimoetan oinarritzen dira. Biderketa horretako zenbaki lehenen maiztasunak modu unibokoan adierazten du jatorrizko datua zein den.

Konpresioa  kodeketa berezi bat da eta bere ezaugarri nagusia da, konpresioarekin lortutako kodeketak jatorrizkoak baino tamaina txikiagoa duela.

Datu-konpresioa, funtsean, datu-sekuentzien errepikapenak aurkitzean datza; ondoren, datua eta errepikapenen kopurua besterik ez da gordeko. Honela, adibidez, fitxategi batean 6 byte okupatzen duen "AAAAAA" sekuentzia agertzen bada, 2 byte besterik okupatzen ez duen " 6A" gorde ahal izango litzateke, RLE (Run-length encoding) algoritmoa erabiliz.

Egia esan, prozesua askoz ere konplexuagoa da, gutxitan lortzen direlako hain zehatzak diren errepikapen-ereduak (irudiren batzuetan izan ezik). Honako konpresio-algoritmoak erabiltzen dira:

 Alde batetik, algoritmo batzuek geroago forma motzagoetan kodetuko diren sekuentzia luzeak bilatzen dituzte.
 Bestalde, algoritmo batzuek, Huffmanen algoritmoak adibidez, sarrien errepikatzen diren karaktereak aztertzen dituzte, gehien errepikatzen direnak forma motzagoetan kodetzeko.
 Beste batzuek, LZW algoritmoak adibidez, aurkitutako ereduekin hiztegi bat eraikitzen dute, geroago eredu horiei erreferentzia egiten zaielarik.
 Erraz ulertzen den beste konpresio-algoritmo bat  byte bikoitien kodeketa da.

Konpresioari buruz hitz egiterakoan, honako bi kontzeptuak kontutan hartu behar dira:

  Erredundantzia: Aurreikus daitezkeen edo errepikakorrak diren datuak
  Entropia: Informazio berria edo funtsezkoa da, hau da, mezu batean dagoen datu kopuru totalaren eta bere erredundantziaren arteko diferentzia.

Datuek emandako informazioa hiru motatako izan daiteke:

  Erredundantea: informazio errepikakorra edo aurreikus daitekeena.
 Esanguratsua ez dena: hauteman ezin dugun informazioa; ezabatzeak, beraz, ez du mezuaren edukiaren gain eraginik sortuko. Adibidez, giza-entzumena 16/20Hz eta 16.000/20.000Hz arteko maiztasunak aditzeko gai bada, maiztasun horien gainetik edo azpitik daudenak ez dira esanguratsuak izango.
  Oinarrizkoa: esanguratsua dena. Erredundantea ez den informazio esanguratsua. Transmititu behar dena seinalea berreraiki ahal izateko.

Hiru informazio mota horiek kontuan izanik, informazioaren konpresiorako hiru eredu ezartzen dira:

  Galerarik gabeko konpresioa: mezuaren entropia osoa transmititzea (oinarrizkoa den eta esanguratsua ez den informazio osoa transmititzea, baina erredundantea kenduz).
  Galera subjektiborik gabea: informazio erredundanteaz gain esanguratsua ez dena ere kendu egiten da.
  Galera subjektiboarekin: oinarrizko informazioa galdu egingo da, errore nabariekin, baina onargarriak, berreraikiko da mezua ( adibidez: bideokonferentzia).

Konpresioa galerekin eta galerarik gabe egitearen arteko aldeak 
Konpresioaren helburua beti da informazioaren tamaina txikiagotzea, tamainaren txikiagotze horrek edukiren gain eraginik izan ez dezan saiatuz. Dena den, datuen txikiagotze horrek informazioaren kalitatearen gain eragina izan dezake.

  Galerarik gabeko konpresioa: galerarik gabeko konpresioan, datuak konprimatuak izan aurretik eta ondoren berdin-berdinak dira. Kasu horretan, gehiago konprimatzeak prozesatze-denbora luzatzea besterik ez du eragingo. Bit ratioa beti da aldakorra galerarik gabeko konpresioan. Testu-konpresioan erabiltzen da nagusiki.
  Galera eragiten duen konpresiorako algoritmo batek datuak ezaba ditzake tamaina gehiago txikitzeko, horrek kalitatea jaitsi ohi duelarik. Konpresioa galerarekin egiten denean,  bit ratioa  konstantea (CBR) edo  aldakorra (VBR) izan daiteke. Kontuan izan behar da konpresioa egin ondoren ezin izango dela jatorrizko seinalea berreskuratu, bai ordea haren hurbilketa bat; horrek jatorrizkoarekin izango duen antzekotasuna erabilitako konpresio motaren araberakoa izango da. Konpresio mota hau irudien, bideoen eta soinuaren konpresiorako erabiltzen da, batez ere.

Ikus, gainera 
 Galeradun konpresio algoritmoa
 Waveletak
 ZIP
 winRAR
 CAB
 LHA
 DGCA
 GCA
 Bzip2
 gzip
 lzip
 KGB Archiver
 7-zip
 AFA

Kanpo estekak 
 Fundamentos de la compresión de imágenes
 Procesamiento Digital de Señales Acústicas utilizando Wavelets.
 Lista de Programas para Comprimir Datos
 Lista de manuales de algoritmos de compresión sin pérdida

Informatika