(Timp citire: 5 minute)

Compresia_datelorCompresia datelor... Probabil pentru unii un mister. Nici după ce veţi citi rândurile de mai jos nu veţi deveni un guru în domeniu, dar, sperăm, veţi înţelege ideea care stă în spatele compresiei datelor. Veţi afla tipurile de algoritmi folosiţi în comprimare, precum şi pentru ce categorii de date sunt aceştia utilizaţi.

 

CONŢINUTUL ARTICOLULUI:
Introducere
În ce constă compresia datelor?
Tipuri de compresie
Metode de comprimare
Bibliografie


 

INTRODUCERE

Compresia datelor... Probabil pentru mulţi un mister, mai ales dacă aţi vrut să citiţi acest articol. Nici după ce veţi citi rândurile de mai jos nu veţi deveni un guru în domeniu, dar, sperăm, veţi înţelege fundamentele teoriei care stă în spatele compresiei datelor. Veţi afla tipurile de algoritmi folosiţi în comprimare, precum şi la ce tipuri de date sunt acestea folosite. Veţi vedea de ce unele fişiere se comprimă mai bine decât altele şi de ce unele nu se comprimă deloc. Să trecem la subiect...

 

ÎN CE CONSTĂ COMPRESIA DATELOR?

Probabil că unii îşi imaginează că atunci când folosesc un program de compresie a datelor, gen WinRar, WinZip, 7-Zip etc., datele sunt în mod misterios îngrămădite unele peste altele, ocupând astfel mai puţin spaţiu pe mediul de stocare. Desigur că lucrurile nu stau chiar aşa. Calculatoarele stochează orice tip de informaţie cu ajutorul a două semne, 0 şi 1, iar să faci din acestea unele mai mici, nu prea merge.

 

Compresie - artistic

 

Aşadar, este nevoie de o altă tehnică. Care este aceea? Simplu spus, compresia datelor înseamnă identificarea unor elemente comune (a unui model, mod de organizare) în modul de distribuire a datelor dintr-un fişier ce urmează să fie comprimat şi folosirea acestor elemente comune, folosind algoritmi matematici, pentru a elimina parte din date, fără a afecta informaţia. Adică, de exemplu, în cazul unui fişier audio, se pot elimina părţi ce sunt asociate unor frecvenţe care oricum nu sunt sesizabile de urechea umană.

 

 

Multe tipuri de fişiere folosesc datele în mod neeconomicos, adică folosesc aceleaşi secvenţe de date de mai multe ori. Prin compresie, aceste secvenţe sunt determinate, codificate şi folosite în aşa fel încât spaţiul folosit pe disc să fie cât mai mic cu putinţă.

Iată un exemplu simplu de algoritm de comprimare:

Avem textul:
"FIŞIERELE IMAGINI SUNT DE MAI MULTE FELURI: FIŞIERE JPEG, FIŞIERE GIF, FIŞIERE, PNG ETC. FIŞIERELE AUDIO SUNT DE MAI MULTE TIPURI, DE ASEMENEA."

După cum se observă cu uşurinţă, în textul de mai sus, "fişiere" apare de 3 ori, "de" apare de 3 ori, "fişierele" apare de 2 ori, spaţiile goale apar de 22 ori. Putem asocia operaţiunii de compresie un mic dicţionar unde "fişiere" este 1, "de" este 2, "fişierele" este 3 şi aşa mai departe. În felul acesta, atunci când apare în text un oarecare cuvânt care se repetă, în loc să fie folosit cuvântul respectiv, este folosit semnul din dicţionar, care ocupă mult mai puţin spaţiu. Se pot urmări cuvintele care se repetă, ori asocieri de litere. Atunci când textul este mic, economia de spaţiu este neglijabilă, când însă textul este mare, aceasta devine relevantă.

Acesta este un exemplu foarte simplu. În realitate lucrurile sunt mult mai complicate, iar crearea unui algoritm de compresie cât mai bun este o perpetuă provocare pentru experţii IT. În funcţie de tipul de informaţie, text, imagine, video ori audio, sunt folosite metode de comprimare diferite, căci fiecare tip de informaţie are caracteristicile sale la care se pretează maniere de abordare privind compresia diferite.


TIPURI DE COMPRESIE: COMPRESIA FĂRĂ PIERDERI ŞI COMPRESIA CU PIERDERI

Există două tipuri de comprimare: comprimarea fără pierderi şi comprimarea cu pierderi. Tipul de compresie cu pierderi presupune eliminarea unei părţi din informaţia originală şi înlocuirea ei cu informaţie similară (dar nu identică) la decompresie. Astfel, un cer cu multe nuanţe de albastru, după ce transformaţi imaginea originală în format gif va pierde o parte din nuanţe şi va rezulta un cer cu mai puţine variaţiuni de albastru.

Compresia cu pierderi are loc în cazul fişierelor audio, video şi al imaginilor. De exemplu, camera dumneavoastră foto, care probabil că poate furniza imagini în mai multe formate, dacă salvează fotografiile în format jpeg, atunci realizează deja o comprimare foarte bună, în scopul salvării spaţiului de stocare. Filmele în format DVD, de asemenea, sunt deja comprimate prin utilizarea codecului mpeg-2. Formatul mp3 reprezintă o variantă comprimată a formei originale a unei înregistrări audio.

 

Compresie - audio

 

Tipul de compresie fără pierderi - se înţelege - nu va lăsa date în afara pachetului de compresie (arhivei). Acest tip de compresie se aplică, de exemplu, textului, pentru că dacă ar fi altfel, aţi risca la decompresia unui text comprimat să găsiţi un alt text decât cel dinaintea efectuării operaţiei de comprimare.

În privinţa fişierelor audio, sunt câteva tipuri de compresie fără pierderi, ca Free Lossless Audio Codec (FLAC), Apple's Apple Lossless, MPEG-4 ALS, Monkey's Audio ori TTA. Dacă aţi ascultat, de exemplu, muzică în format FLAC, ştiţi cu siguranţă că fişierele sunt mai mari decât cele în format mp3, cel mai popular mod de compresie folosit pentru fişierele audio.

După cum vedeţi, multe dintre extensiile de fişiere pe care le folosiţi zilnic sunt indicatori ai compresiei datelor. Prin urmare, este de înţeles de ce unele nu se lasă comprimate atunci când folosiţi diverse programe în încercarea de a le diminua dimensiunea: pentru că ele sunt deja comprimate.

METODE DE COMPRIMARE

Cele mai bune metode de compresie folosesc modelele probabilistice, în care predicţiile sunt dublate de un algoritm numit codarea aritmetică - inventat de Jorma Rissanen. Codarea aritmetică este folosită în compresia fişierelor de tip DjVu.

Lempel-Ziv este o metodă de compresie fără pierderi. O variantă a acestei metode, numită Deflate, optimizează compresia şi este folosită pentru formatele pkzip, gzip şi png.

Pentru fişierele gif se foloseşte metoda Lempel-Ziv-Welch. Fişierele zip folosesc metoda Lempel-Ziv-Renau.

Codarea Huffman este astăzi folosită ca metodă complementară pentru alte metode de compresie. De exemplu algoritmul PKZIP, imaginile JPEG ori formatul audio mp3 folosesc codarea Huffman.

 

 

BIBLIOGRAFIE:

en.wikipedia.org/wiki/Data_compression
dvd-hq.info/data_compression_1.php
osix.net/modules/article/?id=416
mackido.com/General/Compression.html
data-compression.com/lossless.html
en.wikipedia.org/wiki/Huffman_coding