Sunteți pe pagina 1din 11

Compresia datelor.

Introducere Cuprins Localizarea transformarii de compresie Introducere Surse de informaie si codificare Masuri de apreciere a compresiei Clasificarea metodelor de compresie a datelor Exemplu de compresie: codarea run-length (RLE) Concluzii Tema de casa 1. Localizarea transformarii de compresie in structura unui sistem de transmisiune a datelor

Figura 1 Schema bloc detaliata a unui sistem de comunicatii cu compresie Exista doua sisteme de corectie a erorilor: FEC (feedforward errror correction/control) ARQ Automatic Repeat Request, necesita un canal invers pentru a cere re-transmiterea blocurilor de date ce contin erori. 2. Introducere in compresia datelor

Compresia datelor

Notiunea de compresia datelor a aparut pe la 1940 prin lucrarile lui Shanon si Fano care au dezvoltat un algoritm eficient de compresie; acest algoritm a fost repede imbunatatit de Huffman prin minimizarea redundantei (1952). El a ramas neschimbat pana in 1977 cand Ziv si Lempel au stabilit o maniera total diferita de compresie, denumita schema de dictionary (dictionary scheme). Multi din algoritmii de compresie utilizati in present utilizeaza variante ale acestor scheme de baza. Sursele de informatie pot fi continue (imagini, semnale audio) sau discrete (fisiere text). Majoritatea datelor memorate in sistemele bazate pe calculatoare sunt numerice, asa cum sunt imaginile scanate si semnalele digitizate. In cazul surselor continue de informatie, reprezentarea numerica din calculatoare este obtinuta prin discretizare (esantionare si cuantizare), deci este intrinsec cu pierdere de informatie. Pentru aceste date, metodele de compresie sunt de obicei cu pierdere de informatie si raspund utilizarii finale a informatiei. Raportul sau gradul de compresie poate fi oricat de mare si se alege printr-un compromis intre calitatea obtinuta dupa comprimare. In cazul surselor discrete de imformatie, compresia datelor se face fara pierdere de informatie. Scopul compresiei este de a reduce redundanta memorata sau continuta in datele din comunicatii, in vederea cresterii vitezei de transmisie. Compresia datelor are aplicatii importante in domeniul stocarii/memorarii fisierelor si in sisteme distribuite. Compresia datelor este considerata adesea ca o codare, in timp ce codarea este un termen foarte general referindu-se la orice reprezentare speciala ce satisface un anumit scop. Teoria informatiei s-a ocupat de studiul eficient al metodelor de codare, tinand seama de probabilitatea de eroare si de viteza de transmisie. Compresia datelor poate fi vazuta ca o latura a teoriei informatiei in care obiectivul principal este de a minimiza cantitatea de date ce trebuie transmisa. In acest fel se reduce costul transmisiei si/sau al memorarii. Simplu, este foarte avantajos sa comprimi un fisier la jumatate din marimea lui initiala. O caracaterizare simpla a compresiei este aceea ce se refera la transformarea unui sir de caractere intr-o anumita reprezentare (cum este ASCII) intr-un nou sir (de biti, de exemplu), care contine aceeasi informatie, dar are lungimea mai mica pe cat posibil. Pentru toate tipurile de compresie se presupune un canal fara zgomot, deci nu se pune problema corectiei erorilor. Compresia textelor este importanta in aplicatiile de viteza mare si/sau memorie mica. Compresia fara pierderea informatiei poate fi intalnita in cazul utilitarelor ZIP (pentru fisiere text) si GIF (imagine). Acesta din urma difera de formatul JPEG care pierde din informatie. Cu titlu de exemplu, Cativa algoritmi utilizati in utilitarele de arhivare sunt prezentati in tabelul 1. Familia Huffman LZ77 (Lempel-Ziv 1977) LZ78 (Lempel-Ziv 1978) Variante Huffman Adaptive Huffman Shannon-Fano LZFG LZW (Lempel-Ziv-Welch) Utilizat in MNP5 COMPACT SQ ZIP ARJ LHA GIF v.42bis compress

3. Surse de informaie si codificare Sursele de informatie pot fi analogice sau discrete. Majoritatea surselor de informatie din domeniul calculatorelor si al aplicatiilor internet sunt discrete.

Capitolul 1- Compresia datelor. Introducere

Pentru a descrie o surs discret fr memorie (SDFM) sunt necesare dou mrimi: alfabetul sursei i probabilitile de furnizare a fiecrui simbol: s1 s 2 ... s N S : p p ... p 2 N 1 ;
N p ( s k ) =1 k =1

(1)

Dac numrul de simboluri este finit, sursa se numete discret. Dac la un moment dat se emite sigur un simbol atunci sursa este complet. Sursa este fr memorie dac evenimentele sk sunt independente, adic furnizarea unui simbol la un moment dat nu depinde de simbolurile furnizate anterior. Totalitatea simbolurilor unei surse formeaz alfabetul sursei. Orice succesiune finit de simboluri, n particular un singur simbol, se numete cuvnt. Totalitatea cuvintelor formate cu un anumit alfabet se numete limbaj. Informatia furnizata de un simbol al sursei este
i(s k ) =lo p ( s g k )

[bit]

(2)

Entropia este informaia medie pe simbol sau, altfel formulat, este incertitudinea medie asupra simbolurilor sursei S, sau informatia medie furnizata de un simbol.
N N H ( S ) = p ( s i )i ( s i ) = p ( s i ) log( p ( s i )) i =1 i =1

[bit/simbol]

(3)

Debitul de informaie i redundana surselor discrete Noiunea de informaie trebuie legat i de timp, ntrucat, cel puin din punct de vedere al utilizatorului informaiei, nu este indiferent dac furnizarea unui simbol are loc ntr-o or sau ntr-o zi. n acest sens, se definete debitul de informaie al unei surse discrete. Definiie - Debitul de informaie este cantitatea medie de informatie furnizata in unitatea de timp.
H t (S ) = H (S ) 1

H (S )

[ bit / s]

(4)

unde este durata medie de furnizare a unui simbol:


= p ( s i ) i
i =1 N

[s/simbol ]

(5)

Definiie: Redundana unei surse discrete de informaie este diferena dintre valoarea maxim posibil a entropiei i entropia sa:
R= () S m a x {()H H S } () S

[t b/ i

sb i o m l

(6)

In cadrul compresiei se are n vedere sistemul de transmitere a informaiei din figura 2. Procesul de transformare a mesajelor sursei intr-un mesaj codat se numeste codare (coding sau encoding, in engleza). Algoritmul care construieste transformarea se numeste codor

Compresia datelor

(encoder, in engleza). Decodorul realizeaza transformarea inversa, generand mesajul in forma sa originala.

Figura 2 - Sistem de transmitere a informaiei folosind CODEC Canalul se considera fara erori, deci este canal fara perturnatii. Alfabetul codului este, in general, X={xk | k=1,2,...,D}. Pentru cazul compresiei sa va considera cazul binar. Codificarea a aprut ca o necesitate de schimbare a formei de prezentare a informaiei n scopul prelucrrii sau transmiterii acesteia. Codificarea poate fi uniform (bloc), dac se folosete aceeai lungime a cuvintelor de cod, sau neuniform (variabila), cnd lungimea cuvintelor de cod nu este constant. Operaia invers codificrii se numete decodificare, adic transformarea invers ce permite obinerea formei iniiale de reprezentare a informaiei. Coduri unic decodabile Codificarea sursei S, prin alfabetul X, inseamn gsirea unei corespondene biunivoce (S,X) ntre cuvintele de cod {ci | i=1,2,...,N} i simbolurile sursei S. Fiecare cuvnt de cod este o succesiune finit de litere din alfabetul codului. Probabilitatea unui cuvnt de cod este dat de probabilitatea simbolului care trebuie transmis. Definiie: Un cod se numete unic decodabil dac fiecrei succesiuni de cuvinte de cod i corespunde o singur succesiune de mesaje (simboluri) ale sursei. Definiie: Dac un cuvnt de cod ci este format din succesiunea xi1xi2xim, atunci succesiunea xi1...xik, k m se numete prefix al cuvntului respectiv. Dac nici un cuvnt de cod nu este prefix pentru alt cuvnt de cod se spune c acel cod are proprietatea de prefix. Coduri instantanee Definiie: Un cod se numete instantaneu dac este unic decodabil i are proprietatea de prefix. Pentru a compara diferitele coduri instantanee se definete un criteriu care ine seama de timpul necesar transmisiei. n acest sens, un cod instantaneu se va considera mai bun, mai eficent din punct de vedere al timpului de transmisie a aceleeai cantiti de informaie, dac timpul necesar transmisiei este minim. Fie alfabetul codului X = { x i | i = 1,2,..., D} (7) i mulimea cuvintelor de cod C = {c i | i = 1,2,..., N } (8) ntruct prin codarea (S,X) se obine o coresponden biunivoc ntre mulimile C i S, atunci:
p ( s i ) = p (c i ), i =1,2,..., N

(9)

Capitolul 1- Compresia datelor. Introducere Lungimea medie a cuvintelor de cod este


l= H (S ) H (X )

(10)

ntruct max{ H ( X )} = log( D ) se poate calcula o margine inferioar a lungimii medii a cuvintelor de cod:
l min H( S ) log( D )

(11)

care devine in cazul codului binar


lm i n (S ) H

(12)

Definiie - Eficiena a unui cod este raportul dintre lungimea medie minim i lungimea medie reala a cuvintelor de cod.
1 H( S ) H( X ) H( S ) H( X ) l = min = = = H ( S ) log( D ) log( D ) l l log( D )

(13)

Definiie - Redundana a unui cod este mrimea complementar eficienei.


=1 =1 H(X ) log( D )

(14)

Definiie - Codurile care au eficiena egal cu unu (valoarea maxim) se numesc absolut optimale. ntruct simbolurile alfabetului codului sunt echiprobabile rezult c probabilitatea cuvntului ck de lungime lk este:
p (c k ) =

( )

1 lk , k = 1,2,...., N D
N Dl k =1 k =1

(15)

Pentru o surs complet rezult: (16)

Ultima relaie este condiia ce trebuie ndeplinit de lungimile lk ale cuvintelor de cod pentru ca un cod s fie absolut optimal. Pentru un alfabet dat, deci D numr fixat, o sursa S poate fi codat cu un cod absolut optimal numai dac probabilitile simbolurilor sursei S sunt de forma: p ( s k ) = p (c k ) = D l k (17) Teorema (Prima teorem a lui Shannon) Pentru a putea efectua o codificare folosind D simboluri elementare, cu ajutorul crora s fie transmis o cantitate de informaie H(S), este necesar ca lungimea medie a cuvintelor de cod, ataate simbolurilor primare din sursa S, s nu fie mai mic dect H(S)/log(D). Dupa lungimea blocurile prelucrate, codurile pot fi bloc-bloc, bloc-variabil, variabilbloc si variabil-variabil. Un cod bloc are aceeasi lungime a cuvintelor de cod. Un mesaj bloc

Compresia datelor

inseamna ca mesajele au aceeasi lungime. In figura 3.a se prezinta un exemplu de codare bloc-bloc si in figura 3.b se prezinta o codare variabil-variabil. simbolurile sursei a b c d e f g space cuvinte de cod 000 001 010 011 100 101 110 111 mesajele sursei aa bbb cccc ddddd eeeeee fffffff gggggggg space cuvinte de cod 0 1 10 11 100 101 110 111

Figura 3.a codare loc-bloc

Figura 3.b: Codare variabil-variabil

Un exemplu de cod bloc-bloc este codul ASCII si EBCDIC, transformand alfabetul de 64 (sau 256) caractere (simboluri) in cuvinte de cod de 6-biti (sau 8 biti). Ele nu vor fi considerate aici intrucat nu realizeaza compresie. Singurile coduri ce pot realiza compresie sunt cele care au structura bloc-variabil, variabil-variabil si variabil-bloc. 1 4. Masuri de apreciere a compresiei Pentru aprecierea calitatii tehnicii de compresie, trebuie stabilite criterii de comparatie. In mod curent se pot folosi doua criterii: raportul de compresie si complexitatea algoritmului. Cand compresia se foloseste in aplicatiile de transmisii de date, scopul principal este cresterea vitezei de transmisie. Viteza transmisiei depinde de numarul de biti ce trebuie transmisi, de timpul necesar codorului sa genereze mesajul codat, si de timpul necesar decodorului pentru stabilirea mesajului original. In aplicatiile de stocare (memorare), gradul de compresie este cel mai important, dar si eficienta implementarii algoritmului. Pentru o metoda statica, trebuie analizati trei algoritmi:

stabilirea cuvintelor de cod (deci a transformarii de codare), algoritmul de codare

algoritmul de decodare. Pentru o metoda dinamica, trebuie considerate numai doi algoritmi, cel de codare si de decodare. Cele mai folosite masuri de compresie sunt: redundanta codului (Shannon, 1949); lungimea medie a cuvintelor de cod (Huffman, 1952) raportul (gradul) de compresie (Rubin, 1976; Ruth and Kreutzer, 1972) Ceea ce diferentiaza aceste masuri se refera la ipotezele care se fac asupra sursei. Se presupune in general ca se cunosc toti parametrii statistici ai mesajelor sursei. Cel mai cunoscut model este acela al unei surse discrete fara memorie. Se presupune, de asemenea, ca
Codarea mesajelor sursei ridica problema construirii mesajelor sursei. In varianta clasica, denumita si pe baza cuvintelor definite, (defined-word schemes), multimea mesajelor sursei este determinata inainte de invocarea (apelul) schemei de codare. De exemplu, in procesarea fisierelor text, fiecare caracter poate constitui un mesaj, sau mesajele pot fi constituite din siruri alfanumerice sau nealfanumerice. Exista insa metode, denumite free-parse methods, in care algoritmul de codare verifica (stabileste) secventele de lungime variabila de simboluri.
1

Capitolul 1- Compresia datelor. Introducere

fiecare simbol al codului are acelasi cost, ceea ce este acceptabil pentru majoritatea aplicatiilor. In cazul compresiei fara pierdere de informatiei, cum este cazul compresiei surselor text, se poate defini raportul de compresie prin relatia C = intrare / iesire = =(lungimea mesajului de intrare / lungimea cuvintelor de cod este definitia cea mai utilizata. Alta definitie poate fi C = (S - O - OR)/S (22.b) (22.a)

ce include reprezentarea codarii in costul transmisiei. S este lungimea sursei in ansamblu, O este lungimea iesirii (mesajului codat). Cantitatea OR reprezinta sarcina algoritmului pentru transmiterea informatiei despre schema de codare (Tabela de coduri). Intentia este de a masura marimea totala a transmisiei sau a fisierului de memorat. Alta masura a compresiei mult folosita la compresia imaginilor este dat de raportul numarului de biti pentru reprezentarea unui pixel la intrare si la iesire:
RC = bpp bpp intrare iesire

(22.c)

Pentru compresia cu pierdere de informatie, asa cum este in cazul digitizarii si compresiei surselor audio si video, se poate folosi functia rata-distorsiune, unde se face un compromis intre gradul de distorsiune admis (D) si pierderea de informatie R. 5. Clasificarea metodelor de compresie a datelor 2 a). Metode cu si fara pierdere de informatie Tabelul 1 arata doua modalitati diferite de a clasifica algoritmii de compresie a datelor. In (a), metodele sunt numite fara pierdere de informatie (lossless). Asta inseamna ca fisierul decomprimat este identic cu cel original, la nivel de bit. Deci nu se admite schimbarea nici macar a unui bit. Se foloseste in aplicatii de tip text, si in comunicatiile masina-masina cum ar fi codul executabil sau numere. Cu totul alta este situatia unei surse redundante de informatie cum sunt imaginile, statice sau dinamice, sau sunetele audio. Astfel de realizari pot fi comprimate si decomprimate prin neglijarea unor aspecte redundante. Astfel de algoritmi se considera ca sunt cu pierdere de informatie (lossy). Clasificarea facuta este importanta intrucat tehnicile de compresie cu pierdere de informatie sunt mult mai eficiente. Imaginile care se transmit pe internet sunt exemple excelente in a ilustra de ce compresia este importanta, precum si interesul major pentru tehnicile cu pierdere de informatie fata de cele fara pierdere de informatie. De exemplu, fie cazul unei transmisiuni pentru o imagine color cu un calculator cu un modem de 33.6 bps. Daca imaginea nu este comprimata (TIFF sau BMP format) imaginea va contine 600 kB. Daca a fost comprimata folosind o tehnica cu pierdere de informatie (GIF format) se va obtine numai 300 kB. Daca se utilizeaza o tehnica de compresie cu pierdere de informatie (JPEG format) atunci dimensiunea imaginii va fi de 50 kB. Important este ca
2

From Steven W. Smith, The Scientist and Engineer's Guide to Digital Signal Processing, California Technical Publishing, Chapter 7, ISBN 0-9660176-3-3 (1997).

Compresia datelor

pentru transmiterea celor trei fisiere este nevoie de 142, 71 si, respectiv, 12 secunde ceea ce este o diferenta majora. De aici o statistica interesanta, conform careia nu se transmit imagini in format TIFF ci numai cele in format JPEG iar cele in format GIF se folosesc numai pentru aplicatii speciale, cum ar de exemplu imaginile pentru logo-uri.

Figura 1: O clasificare a algoritmilor de compresie b). A doua metoda de a clasifica se refera la modul de lucru si este prezentata in tabeulul 1.b Cele mai multe programe pentru compresia datelor lucreaza pe grupuri/blocuri de date din fisierul original, comprimandu-l mai mult sau mai putin, si scriind blocul comprimat in fisierul de iesire. Una din tehnicile prezentate in tabel se numeste CS&Q care este un acronim de la coarser sampling and/or quantization (esantionare si cuantizare larga). De exemplu, fie un semnal semnal discretizat pe 12 biti. Am putea citi doua esantioane succesive din fisierul original (24 biti), neglijam complet unul din ele, inlaturam 4 biti cei mai putini semnificativi din celalalt esantion, si apoi scriem cei 8 biti ramasi in fisierul de iesire. Rezulta un raport de compresie de 3:1, intrucat am redus cei 24 de biti la numai 8 biti Algoritmul utilizat este, evident, cu pierdere de informatie. Desi pare destul de mecanicist si cam dur, el este folosit in cadrul tehncilor de compresie de tip transformare, din care face parte si JPEG. Acest algoritm este de tip intrare-fixa iesire fixa (fixed-input fixed-output). 6. Codarea lungimii sirurilor identice (run-length-encoding)(RLE) Un exemplu de compresie fara pierdere de informatie foarte usor de urmarit si de implementat este cunoscut sub numele de Run-Length Encoding (RLE) si este prezentat in figura 2. Fisierele contin adesea caractere care se repeta de mai multe ori, asa cum sunt fisierele text in care se foloseste des caracterul spatiu pentru a separa cuvintele sau paragrafele. De asemenea, in cazul semnalelor discretizate se intalnesc portiuni in care semnalul nu-si schimba valoarea, deci va contine aceeasi succesiune de biti. Alt exemplu il constituie imaginile care au un fond alb sau negru destul de larg. Pentru toate aceste exemple, algoritmul run-length encoding ofera o buna compresie. In figura 2 se prezinta un exemplu de compresie pentru o secventa ce are multe zerouri, fiecare zerou reprezentat prin doi octeti. De fiecare data cand se intalneste o secventa de zerouri in sirul de intrare, se scriu doua valori in fisierul de iesire. Prima valoare (zero) indica inceputul compresiei. A doua valoare este numarul consecutiv de zerouri. Compresia este obtinuta cand se intalnesc secvente de zerouri cu lungime mai mare de 2.

(V.0) Figura 2: Un exemplu de compresie folosind algoritmul run-length encoding.

Capitolul 1- Compresia datelor. Introducere

Trebuie observat insa ca secvente de date in care apar zerouri individuale vor determina un fisier de iesire mai mare decat cel original. Plecand de la aceasta idee s-au dezvoltat diversi algoritmi care lucreaza pe octeti sau grupuri de octeti. De asemenea, se poate folosi pentru a coda orice alt caracter, nu numai zero-ul asa cum a fost exemplificat anterior. De exemplu, sirul "aaaabbcdeeeeefghhhij" poate fi inlocuit prin "a4b2c1d1e5f1g1h3i1j1" (V.1) Atunci cand secventa de intrare are si cifre pot apare probleme in ceea ce priveste interpretarea si decizia aupra intrebarii daca un caracter este sau nu codat. O solutie consta in inserarea unui caracter special (escape) la fiecare simbol ce trebuie codat. Desigur, caracterul inserat nu trebuie sa faca parte din textul comprimat. O alta varianta presupune eliminarea repetitiilor cu valoarea 1 adica "a3b1cde4fgh2ij" (V.2)

Exista dezavantajul interpretarii incorecte a unui octet, in sensul ca nu se poate sti ce semnifica, caracter sau numar de repetitii. Deci in sirul initial nu ar trebui sa apara numere. O solutie si mai eficienta se bazeaza pe dublarea caracterului care este codat si scrierea unui numar ce reprezinta numarul de repetitii al caracterului dublat. "aa2bb0cdee3fghh1ij" (V.3)

Algoritmul scris in pseudocod pentru ultima varianta lucreaza la nivel de octet In sfarsit, o alta varianta presupune existenta unui caracter special care sa indice inceputul compresiei. Caracterul special nu trebuie sa faca parte din secventa ce trebuie comprimata: xa4xb2cdxe5fgxh3ij (V.4) unde x este caracterul ce arata inceputul unei secvente comprimate. Din analiza efectuata rezulta ca, variantele #2 si #3 introduc erori la decodare, deci nu pot fi folosite in practica. Codarea lungimii este eficienta numai daca numarul de repetitii este mai mare de 4. Valoarea numarului ce reprezinta numarul de repetitii este limitata de reprezentarea binara a caracterelor. De exemplu daca se folosesc 8 biti pentru un caracter atunci numarul cel mai mare de repetitii ce poate fi reprezentat este 255. Exemplu : Sa codifice mesajul M = aaaabbbbbbbcccccbbbbbbbbdefgggggg cu RLE#1 si #4 la nivel alfanumeric. Solutie: In varianta 1, mesajul comprimat este MC#1 = a4b7c5b8d1e1f1g6. Raportul de compresie este:
RC = 32 caractere * 8 biti =2 16 caractere * 8 biti

In varianta 4, compresie este:

mesajul comprimat este MC#4 = xa4xb7xc5xb8defxg6. Raportul de


RC = 32 caractere * 8 biti =1.77 18 caractere * 8 biti

10 Codarea RLE la nivel binar (V5) -

Compresia datelor

Ca principiu este identica cu codarea RLE la nivel de caracter, cu unele particularitati: se presupune ca primul simbol este 0; Fiecare cuvant de 4 sau 8 biti reprezinta numarul de repetari.

Exemplu: Sa se comprime mesajul M="aaabb". Se considera nr. maxim de repetitii egal cu 16, deci 4 biti. Se face onversia in binar: Mh="61.61.61.62.62" Mb = 0 1 0 1.0 0 0 1-0 1 0 1. 0 0 0 1-0 1 0 1. 0 0 0 1-0 1 1. 0 0 1 0-0 1 0 1 . 0 0 1 0 .

M_RLE = 11113-1-1-1-1-1-3-1-1-1-1-1-3-1-1-2-2-1-2-1-1-1-2-1-1 Raportul de compresie este:


RC = 5 caractere * 8 biti = 0.345 29 caractere * 4 biti

Exercitiu in clasa: Sa se stabileasca care este cea mai buna metode RLE de compresie a mesajului M =barbu_are_barba_rara. Se vor considera metodele: V1, V4 si V5. Concluzii In compresia datelor un rol important il are teoria codarii si teoria informatiei. Compresia se refera la micsorarea redundantei mesajului de transmis. Compresia de poate face: cu pierdere de informatie, asa cum este cazul surselor continue (analogice) discretizate, reprezentate numeric in calculator; fara pierdere de informatie, asa cum este in cazul textelor. Ca masura a compresiei se foloseste - cel mai des marimea numita raportul de compresie, ca raport intre marimea fisierului comprimat si marimea fisireului initial, necomprimat. Un criteriu complet al calitatii compresiei trebuie sa considere insa si complexitatea algoritmilor de codare/decodare. Codarea numarului de repetitii (RLE = Run Length Encoding) este un algoritm de cautare a secventelor (plecand de la simboluri) care se repeta si scrierea simbolului si a numarului de repetitii al acestuia. Este eficient pentru date cu redundanta mare, asa cum este cazul imaginilor. Pentru surse de tip text trebuie lucrat la nivel de bit. Tema pentru acasa #1 : Sa se scrie un program (C, C++, Basic, Pascal, Java, Matlab, Mathematica, Maple, Piton, etc) pentru codarea si decodarea run-length a unui fisier text, in doua din variantele prezentate (#V5 si una la alegere). Sa se calculeze rapoartele de compresie si sa se compare rezultatele pe un set de trei fisiere text de cel putin 100kB, cu diferite continuturi: stiri, tehnic si literatura. Interpretati rezultatele. Aplicatia trebuie sa ceara numele fisierului de intrare, numele fisierului de iesire si metoda de compresie.

Capitolul 1- Compresia datelor. Introducere Anexa 1 - Tabelul ASCII (American Standard Code for Information Interchange) .

11

In varianta standard este pe 7-biti, deci pentru 128 caractere, de la 0x00 la 0x7F, sau in zecimal de la 0 la 127. Numerele zecimale de la 128 la 255 se folosesc la reprezentarea codului ASCII extins, in vederea reprezentarii altor semne si caractere.

S-ar putea să vă placă și