Compresia de Date In Aplicatii Multimedia

Introducere

Transmiterea informației presupune ca datele să fie percepute și înțelese de receptor cu aceeași semantică cu care a fost inițiată de transmițător.

În lucrarea de față sunt prezentate două elemente indispensabile unei producții audio – video : multimedia și compresia.

Multimedia reprezintă o realitate, o revoluție digitală posibilă mai ales datorită a două descoperiri importante : transformarea semnalului analog (sunet, imagine, video) în semnal digital. Ca urmare a acestei transformări, volumul de date a crescut considerabil, făcând necesară compresia informațiilor. Aceasta presupune o altă transformare a datelor, cea de-a doua, care a condiționat apariția multimediei.

Dezvoltarea acestei noi tehnologii a fost precedată de evoluții tehnologice cum ar fi:

dezvoltarea tehnologiilor de stocare, care au permis stocarea unui volum imens de date. Trebuie menționat în acest sens apariția suportului optic de mare capacitate;

dezvoltarea metodelor și tehnicilor de compresie și decompresie, în special pentru date voluminoase, cum sunt fișierele de sunet sau video;

dezvoltarea capacităților și performanțelor componentelor și perifericelor calculatorului, care au acceptat tratarea, depozitarea și distribuția datelor multimedia;

dezvoltarea tehnologiilor de transfer a datelor, extinderea rețelelor de calculatoare și altor sisteme moderne de distribuție.

În capitolul 2 sunt prezentate elementele de multimedia și problemele de resurse ce apar.

Compresia datelor este procedeul prin care se realizează reducerea spațiului ocupat pe suportul fizic de un fișier. Decompresia este procedeul care asigură revenirea la forma inițială a unui fișier anterior comprimat.

Compresia de date se face pe baza unor algoritmi de compresie. În cazul datelor multimedia, se vor folosi algoritmi specializați în compresia acestui tip de date. Algoritmii prezentați în lucrare în capitolul 3 sunt grupați pe categorii de date (sunet, imagine, video). Tot în acest capitol se pune problema compresiei și decompresiei, cele două elemente complementare ale compresiei de date, precum și formate de fișiere multimedia comprimate cu diferiți algoritmi (în funcției de format). În finalul capitolului sunt prezentate criterii după care se pot evalua algoritmii, și un exemplu de implementare a unui algoritm de compresie (algoritmul Huffman adaptiv).

În capitolul 4 este prezentată o aplicație multimedia, pentru a pune în evidență avantajele și dezavantajele compresiei de date. Aici vor fi prezentate formate de fișiere multimedia, făcându-se comparație între cele comprimate și cele necomprimate. Aplicația a fost realizată cu ajutorul unui software de authoring Multimedia Toolbook produs de Asimetrix și în limbajul C în mediul de programare vizual C Builder al firmei Borland pentru implementarea algoritmilor.

În ultimul capitol, 5 se face o analiză a performanțelor algoritmilor de compresie, pe fiecare categorie de fișiere multimedia. Analiza se face folosind inițial un format de fișier necomprimat care apoi este trecut prin mai multe transformări (compresie și / sau schimbarea formatului).

2. Multimedia și problemele de resurse

2.1 Ce este Multimedia ?

Multimedia a devenit o modă în lume în anii 90. Nimeni nu pare să aibă o definiție a ceea ce este multimedia, în schimb sunt mulți care ai idei despre ceea ce ar trebuie să fie. Uniunea de video, audio și tehnologie este ceea ce a realizat multimedia . Oricum nu este o definiție oficială pentru termenul de multimedia. Există multe încercări de a defini termenul una dintre ele fiind următoarea :

Multimedia este orice combinație de text, grafică, sunet, animație și video furnizată de calculator sau oricare alt mijloc electronic; multimedia combină interactivitatea și accesibilitatea televizorului. Această uniune produce un nou mediu în care comunicarea poate fi bidirecțională.

Multimedia nu a putut fi pusă în practică până de curând pentru că nu a fost posibil să fie puse laolaltă toate componentele necesare la un preț accesibil.

În 1970 au apărut primele calculatoare pe piață, ele fiind produse având procesoare de mică putere și ecran monocrom doar pentru text. La începutul anilor ‘80 a fost adăugat harddisk-ul și o placă video simplă. Cea mai mare schimbare a anilor ‘80 s-a produs în 1987 când calculatoarele au fost prevăzute cu posibilitatea de a afișa culori și grafică și deasemeni sunet și animație. Combinația de video digital, sunet, animație și text s-a produs în 1990. În noua tendință de partajare a informației, prin canale ca Internetul, a existat o puternică tendință în amalgamul diferitelor sisteme furnizarea de pachete integrate denumite multimedia. În același timp s-au produs și progrese în tehnologie care au facilitat acest proces.

creșterea capacității de stocare

creșterea vitezei de procesare

scăderea în mărime

scăderea prețurilor

Aceasta a fost combinația de circumstanțe care a făcut posibilă creșterea performanțelor mult mai rapid disponibilă.

Există două perspective, una pozitivă și alta negativă, privind introducerea capabilităților multimedia. Din punctul de vedere al pesimiștilor multimedia este o supraaccesorizare fiind o nouă manevră a producătorilor de a vinde mai mult. Deasemeni, în general utilizatorul obișnuit nu are nevoie de asemenea capabilități. Punctul de vedere al optimiștilor este acela că o data ce consumatorii văd despre ce este vorba, ei și-l vor dori. Asta presupunând că posibilitatea de full screen și full motion video va fi valabilă la un preț care este considerat acceptabil de către consumatori. Un exemplu de multimedia este CD-ROM și televiziunea sau video interactiv la comandă.

Utilizări educaționale

Antrenarea și educarea bazată pe calculator sunt doar două domenii care utilizează multimedia. Banca Hong Kong din Canada care avea materialele de instruire pe casete video, acum l-au transferat prin intermediul software-ului în video MPEG. Acest lucru a putut fi făcut posibil prin intermediul compresiei.

2.2 Componente multimedia

Alăturarea dintre imagine și sunet te duce inevitabil cu gândul la multimedia. De aceea, abordarea prelucrării digitale a imaginii și sunetului va fi făcută din perspectivă multimedia. Astăzi, când Rețeaua (The Net) își face tot mai mult loc în viața noastră de zi cu zi, este necesar discutarea conceptului de networking multimedia sau a infrastructurii aferente.

Textul

Cuvintele și simblorile de orice formă, scrise sau citite, reprezintă cel mai simplu mod de comunicație. Din punct de vedere tehnic, textele electronice (stocate cu ajutorul calculatoarelor) sunt caracterizate de o serie de mărimi. Prelucrarea textelor (folosind procesoare de texte, programe de paginare etc.) nu trebuie înțeleasă strict tehnic ci din perspectivă multimedia. Oricum, când vorbim despre informație stocată electronic, afișarea ei pe ecranul monitorului impune o scurtă discuție despre fonturi.

Prin typeface ne referim la o familie de caractere grafice care în mod uzual cuprinde mai multe tipuri de mărimi și stiluri. Fontul este o colecție de caractere având o singură mărime și un singur stil aparținând unui typeface. În mod obișnuit stilurile fonturilor se definesc prin aldine (bold în limba engleză) și oblice (italic în engleză). Alte atribute de stil – sublinieri, centrări, superscrieri etc – sunt introduse de softuri specializate. Mărimea este exprimată în puncte; un punct este aproximativ 0,0138 inch sau 1/72 dintr-un inch.

Atunci când textul este afișat pe ecran, intervin unele prelucrări dintre care amintim :

Kerning – în cazul în care utillizăm titluri scrise cu litere foarte mari devine importantă distanța dintre litere și deci trebuie să procedăm la o ajustare a acesteia numită kerning.

Anti-aliasing – dacă se dorește o aparență profesională a unui anumit titlu de secțiune atunci se utilizează texte anti-aliasing. Acest efect se referă la o tranziție ușoară de la culoarea textului la fondul hârtiei.

Un aspect important privind fonturile se referă la tehnologia utilizată pentru descrierea lor în vederea reprezentării pe ecran sau la imprimantă. În 1985 firma Apple a combinat pentru prima dată procesoarele de text si programele de paginație cu un soft specializat care permitea desenarea formei caracterelor pe baza geometriei acestora. Acest soft specializat era limbajul PosScript de descriere a fonturilor, al firmei Adobe Systems Incorporated, licențiat de către Apple. Deoarece fonturile PostScript descriu fiecare caracter în termenii unei construcții matematice, (curbe Bezier), fiecare caracter poate fiscalat (mărit și micșorat ) fără ca aspectul acestora să aibă de suferit. O replică la fonturile PostScript sunt cele TrueType care folosesc în reprezentarea caracterelor curbe cuadratice. Și la aceste fonturi, TrueType, este posibilă scalarea fără pierderea calității aspectului.

În ultimul timp, datorită avalanșei de informații este nevoie de stocarea informațiilor de natură textuală precum și regăsirea lor rapidă. În acest sens își fac loc ,tot mai mult , termeni ca hypermedia și hypertext. Multimedia interactivă devine hypermedia atunci când proiectantul unei aplicații furnizează o structură de elemente aflate în legătură, prin intermediul cărora utilizatorul poate naviga și interacționa. Când elementele de legătură sunt cuvintele, spunem că avem de-a face cu hypertext.

În ceea ce privește partea hard pentru reprezentarea textelor, principalul echipament periferic ce intervine este monitorul. În prezent , perifericele cele mai utilizate pentru afișarea textului sunt ecranel CRT (Catodyc Ray Tube). Tehnologia care suportă CRT-urile în cazul calculatoarelor este similară cu cea utilizată pentru ecranele televizoarelor. Inițial CRT-urile calculatoarelor nu sportau decât afișarea caracterelor nu și a imaginilor, cu atât mai puțin a filmelor. În prezent monitoarele calculatoarelor pot afișa text, imagini, animație apărând în schimb diferențe tehnologice.

În cazul textelor, atunci cănd vorbim despre aplicații dedicate prelucrări lor, vom descoperi o mare varietate de pachete de programe integrate, cu posibilități foarte mari de procesare. Câteva dintre acestea , cele mai mult utilizate, provin de la firme specializate pe astfel de prelucrări : WordPerfect, CorelVentura de la firma Corel , Word de la Microsoft; Acrobat Reader ,Page Maker de la Adobe, Quark Xpress, Latex, TeX, groff, troff,nroff.

Sunetul

Când ceva vibrează în aer se creează unde de presiune. Aceste unde se propagă venind în contact cu timpanul, moment în care simțim diferența de presiune, sau vibrația, ca sunet. Sunetele sau undele sunore variază în intensitate (măsurată în decibeli – dB) și în frecvență (vibrații pe secundă, măsurată în hertz sau Hz ). Compunerea mai multor unde sonore conduce la o imensă plajă sonoră de la muzica simfonică la vorbire sau simple zgomote. Din punct de vedere al interfeței om-calculator, există două tipuri de sunete: sunete rezultate din vorbire și alte sunete decât cele vorbite. Limbile vorbite sunt printre cele mai complexe limbaje. Din faptul că vorbirea are un conținut sintactic rezultă două direcții de dezvoltare :

recunoașterea vorbirii (speech recognition), se referă la recunoașterea grupurilor de foneme (cuvinte). Interpretarea succesiunii de cuvinte în scopul înțelegerii sensului limbii vorbite, este un obiectiv mult mai dificil de atins.Acest domeniu este înțelegere vorbirii ) speech understanding.

sinteza vorbirii se referă la traducerea de către calculator a unei descrieri codificate în vorbire, un caz particular fiind cea care privește conversia textului în vorbire.

Nu mai puțin importante sunt sunetele diferite ce cele specifice vorbirii. În forma lor naturală, sunetele sunt semnale analogice – cu variație continuă. Pentru a le prelucra cu ajutorul calculatorului avem nevoie de aceste sunete în forma digitală. – cu variație discretă. Sunetele pot fi digitizate cu ajutorul microfonului sau a sintetizatorului. Practic, sunetele pot fi digitizateului. Practic, sunetele pot fi digitizate utilizând orice sursă.

Sunetele digitizate se mai numesc și eșantioane. În fiecare a n-a secundă, este preluat un eșantion de sunete și stocat ca informație digitală. În fiecare a n-a fracțiune dintr’o secundă , este preluat un eșantion de sunet și stocat ca informație digitală. Numărul de fracțiuni n reprezintă rata de eșantionare iar cantitatea de informații stocată în legătură cu eșantionul reprezintă mărimea eșantionării. Cu cât se citesc mai des informații despre sunet cu atât se stochează mai multă informație despre respectivul eșantion, rezultând o calitate mai bună a sunetului. Pentru deigitizarea sunetelor se utilizează mai des trei frecvențe de eșantionare și anume : rata de 44,1 kHz, comparabilă calității sunetelor înregistrate pe CD-urile audio, rata de 22,05 kHz comparabilă cu sunetele de pe o casetă normală și rata de 11,025kHz sau 8,00125 kHz . Mărimea eșantioanelor poate fi de 4, 8 sau 16 biți. Un sunet înregistrat pe 8 bytes oferă 256 nivele în scopul descrierii amplitudinii – nivelul sunetului la un moment dat. Un eșantion pe 16 bytes oferă 653536 nivele pentru descrierea intervalului dinamic. Valoarea eșantionului este rotunjită până la cel mai apropiat întreg – cuantificare – iar dacă amplitudinea depășește intervalul disponibil atunci are loc decuparea. (clipping) undelor. Cuantificarea poate produce un sunet de fond nedorit (deoarece se face o aproximare) iar decupajul poate distorsiona foarte puternic sunetul.

Din punct de vedere al cantității, sunetul este o componentă multimedia ce necesită spații de stocare apreciabile. Dacă ținem cont de rata de eșantionare și de marimea eșantionului putem face o aproximație a mărimii datelor ce se referă la sunete. Între cantitatea sunetelor și calitatea acestora există o proporționalitate directă. În cazul unei înregistrări digitale, compariabilă calitativ cu cea a CD-urilor optice, fișierul de sunet corespunzător va avea următoarele proprietăți (standardizate în 1982 de Philips și Sony în “Red Book”) privind rata de eșantionare și mărimea eșantioanelor : 44,1 Khz respectiv 16 biți. Dacă facem un calcul sumar, spațiu necesar pentru a stoca o secundă de sunet ăn acest format este de 16*44100/8=86 Kb/s iar dacă vrem o înregistrare stereo vom avea nevoie de 2*86=192 Kb/s. Asta ar însemna ca melodia dumneavoastră preferată, dacă ar avea 4 minute, ar putea încăpea pe 32 de dischete obișnuite de 1,44 Mb. Ați putea renunța la o parte din calitate în schimbul catității prin scăderea ratei de eșantionare la 22,05 kHz , presupunând că doriți calitatea unei casete analogice, și a mărimii eșantionului de la 16 biți la 8 biți (fapt care se va auzi printr-o “tăiere” a înaltelor și joaselor) , dar și așa veți avea nevoie de cel puțin 8 dischete bune, pentru a nu avea necazuri la copiere.

Sunetele se pot reprezenta și sub altă formă decât prin eșantionare și anume, utilizând standardul MIDI. Pe hârtie, se utilizează reprezentarea melodiilor prin note și portative. Asemănător, calculatorul interpretează “portativele digitale” folosind instrumentele din standardul MIDI (Musical Instrument Digital Device) dezvoltat prin anii 1980. Prin MIDI s-au definit o serie de 127 instrumente diferite – printre care piane, chitări, fluiere și multe altele.

Avantajele și dezavantajele MIDI față de reprezentarea digitală sunt similare cu cele întâlnite în comparația dintre reprezentarea vectorială a imaginilor și reprezentarea bitmap.

Imagine și animație

Imaginile pot fi reprezentate sub forma vectorială ( graphics în engleză) sau sub formă bitmap (images). Reprezentarea bitmap este utilizată pentru imagini fotorealistice și imagini complexe care necesită detalii fine. Obiectele vectoriale sunt utilizate pentru forme grafice care pot fi exprimate matematic. Imaginile vectoriale mențin informațiile structurale prin intermediul obiectelor în timp ce imaginile bitmap ignoră conținutul semantic, fiind descrise prin intermediul pixelilor, fiecare pixel fiind codificat pe un anumit număr de biți.

Imaginile de tip bitmap rezultă prin capturarea lumii reale sau prin generarea de către calculator. Există multe căi de obținere a imaginilor digitizate ale lumii reale. Dintre aceste scanarea și captura cu ajutorul unei camere video digitale sunt cele mai utilizate. Deoarece aceste imagini rezultă din scanarea lumii reale, ele se numesc și imagini scanate. Atunci când se utilizează calculatorul pentru generarea lor avem de-a face cu imagini sintetizate.

Tehnici folosite pentru crearea de imagini sunt :

crearea cu ajutorul unui program de tip paint;

capturarea unei imagini afișate la un moment dat pe ecran;

conversia unei imagini vectoriale într-o imagine bitmap;

generarea unei imagini de către un program;

În general când vorbim despre imagini , ne gândim la formate grafice. În ceea ce privește aceste formate, ele sunt matrici bidimesionale alcătuite din elemente individuale numite pixeli. Un pixel reprezintă cel mai mic element al rezoluției unei imagini. Fiecare pixel este reprezentat printr-o valoare numerică, numită și amplitudine. Numărul de biți disponibili pentru codificarea unui pixel (practic a culorii asociate acestuia) se numește adâncime. Exemple de adâncimi tipice sunt 1 (pentru imagini alb/negru), 2, 4 ,8 ,16, 24. Standarde grafice de stocare a imaginilor sunt BMP, ICO, GIF, JPEG, TIFF, PCD, PCX, PNG etc.

Formatele bitmap necesită un spațiu de stocare mult mai mare decât imaginile vectoriale. Datorită faptului că imaginia bitmap ignoră semantica, două imagini de aceeași mărime (adică aceeași inălțime și lățime) folosind același format vor ocupa exact același spațiu de stocare indiferent cît de complexă este una dintre ele și cât de simplă cealaltă. Totuși ca spațiul să fie mai mic se apelează la diferite tehnici de compresie.

Uneori este nevoie de conversia imaginilor bitmap în imagini vectoriale. În acest caz vorbim despre domeniul numit pattern recognition – recunoașterea formelor. OCR (Optical Character Recognition) este un exemplu de conversie bitmap-text.Unele programe încearcă să detecteze granițele formelor din cadrul imaginilor bitmap și să găsească o reprezentare geometrică a obiectului respectiv. Acest proces, care rezultă într-o conversie bitmap-obiect , este numit în general, autotracing.

Ambele tipuri de imagini (bitmap și vectoriale) pot fi afișate într-o succesiune de vederi care creează impresia de mișcare. În cazul bitmap-urilor, spunem că avem de-a face cu mișcarea imaginilor (moving bitmap images) iar în cazul imaginilor vectoriale avem de-a face cu animație pe calculator. Indiferent despre ce tip de imagine este vorba, fiecare imagine afișată este numită cadru. Întârzierea între aparițiilor a două cadre este în general constantă. Numărul de cadre afișate pe secundă este numit rata cadrelor.

În cazul mișcării imaginilor secvențele sunt înregistrate ca o succesiune de cadre individuale reprezentând imagini bitmap. În cazul imaginilor vectoriale, succesiunea de cadre se reprezintă prin interpretarea unei descrieri abstracte a obiectelor în timpul afișării. Altfel spus, în acest caz nu este nevoie de înregistrarea unei serii de bitmap-uri reprezentând cadre individuale. Avantajul major în cazul imaginilor vectoriale constă în formatul compact. Acest lucru se întâmplă ca urmare a descrierii secvenței animate ca un set de obiecte și o serie de directive dependente de timp – executate la redare. Totuși, un dezavantaj îl poate reprezenta faptul că la redare este necesară o mare putere de procesare. Dacă animația este complexă și calculele extensive atunci acest lucru poate depăși capacitățile calculatoarelor simple.

Video

În cazul acestui tip de informație este vorba despre integrarea sunetului și a imaginii. Practic, video digital este una din cele mai angajate domenii multimedia fiind una din uneltele foarte puternice care apropie utilizatorul de lumea reală. Între toate elementele multimedia, video-ul impune cele mai înalte cerințe de performanță asupra calculatorului. Există un soi de confuzie atunci când se discută de video în contextul televiziunii și al calculatorului. Video, în cadrul televiziunii este o informație de natură analogică în timp ce în cazul video pe calculator tehnologia folosită este ca digitală. Integrarea celor două tehnologii s-a făcut o dată cu introducerea HDTV – High Definition Television. Combinația calculator și video a început atunci când sistemele de calcul au fost utilizate pentru controlul imaginilor video analogice stocate pe benzi și afișate pe ecranul televizorului. Pentru a afișa imaginile video analogice pe ecranul calculatorului, semnalul video trebuie mai întâi convertit din forma analogică în forma digitală. Oricum pasul final spre video digital va avea loc atunci când achiziția și stocarea video va deveni în întregime un proces digital, benzile video analogice nemaifiind folosite.

Unul dintre standardele utilizate în lume pentru redarea video analogic este NTSC ( National Television Standards Comitee ). Acest standard definește metoda de codificare a informației în cadrul semnalului electronic care creează în final imaginea TV. Imaginea TV este alcătuită din cadre ce se succed într-o frecvență de 30 de cadre pe secundă. Cadrul este alcătuit din 525 linii orizontale. Cadrul este desenat de către un spot care pentru a baleia întregul ecran execută două treceri: prima trecere desenarea linilor de ordin impar, a doua trecere pentru desenare linilor de ordin par. Procesul constituirii fiecărui cadru este numit întrețesere ( interlacing ), o tehnică ce ajută la prevenire apatiției efectului flicker.

Pentru video digital există două sisteme mai frecvent folosite pentru stocarea și redarea secvențelor video. Aceste două sisteme sunt QuickTime de la Apple și AVI de la Microsoft. Ambele sisteme au posibilitatea de a controla , cu ajutorul unor algoritmi speciali, cantitatea de informație pe cadru precum și rata de afișare a acestora pe ecran, în ambele tehnologi sunetul și imaginea fiind sincronizate.

În prezent nu se poate afișa o imagine full screen la o rată de 30 cadre pe secundă fără ajutorul unei plăci video speciale. Acest lucru se poate demostra făcând un mic calcul : dacă vom considera o imagine cu dimensiunea de 320×240 pixeli, la o rată de 30 cadre pe secundă cu o adâncime a culorii de 16 biți vom avea nevoie de un flux continuu de 4,5 M/s flux care este imposibil de asigurat de un sistem mediu de calcul. Dacă vom lua o rezoluție de 1024×768 (pentru a avea o calitate bună în full screen) la aceeași rată de 30 fps cu adâncimea culorii de 24 de biți vom avea nevoie de o rată susținută de 67.5 M/s, valoare greu de atins chiar și de sistemele performante.

Calculele efectuate mai sus au arătat rata de transfer imensă de care este nevoie pentru a putea vorbi de conferințe on line sau video on demand. Acest impediment poate fi depășit fie printr-o schimbare a infrastructurii, ceea ce implică un timp mare și costuri ridicate, fie folosind compresia, o metodă mult mai la îndemână și aplicabilă pe orice tip de date.

2.3 Interactivitatea în multimedia

Multimedia poate fi interactivă, ca în cazul televiziunii interactive. Interactivitatea reprezintă controlul pe care o persoană îl are asupra prezentării informației. Există trei clasificări de interactivitate care sunt cele mai utilizate:

Linear presentation (prezentare liniară)

Programmed branching program (prezentare ramificată)

Hypermedia (prezentare în hipermediu)

Linear presentation

Producătorul sau autorul decide secvența și maniera în care este prezentată informația. Consumatorul are posibilitatea să controleze viteza sau pasul la care este prezentată informația.

Programmed branching program

Consumatorul sau utilizatorul are posibilitatea să aleagă modul de derulare prin intermediul unui meniu de selecție. Producătorul are încă controlul situației pentru că el decide ce opțiuni pune la dispoziție utilizatorului.

Hypermedia

O încrengătură de informații intercorelate care sunt legate între ele astfel încât utilizatorul poate avea acces la informație aleator. În acest caz utilizatorul sau consumatorul are control aproape absolut nu doar la prezentarea informației, ci și la conținutul ei.

Interactivitatea presupune conectarea la un server multimedia și de a putea transmite informații acestuia. În acest mod putem interveni direct asupra ceea ce vom recepționa. Un exemplu ar fi televiziunea interactivă: urmărim un film sau un buletin de știri fără constrângeri orare, putând reveni asupra unor secvențe fără să se facă întreruperi în program, sau tele-cumpărăturile scenariu ușor de imaginat în următorii ani.

Asemenea situații implică un tot digital, adică transmisia datelor de tip imagine, sunet să se facă în formă digitală. Limitările încep să apară în acest moment datorită debitului redus de care dispunem în prezent, întrucât este vorba de transmisia unui film digitizat iar la recepție trebuie să avem cel puțin caltatea televiziunii clasice, analogice. Debitul (sau lărgimea benzii) suportului de transmisie este deci un factor critic. În tabelul următor putem urmării dependența calității emisiunii difuzate în funcție de lărgimea de bandă.

2.4 Medii de stocare multimedia

Plecând de la banalul text și până la clipurile video sau filme, datele de tip multimedia sunt categoria cea mai pretențioasă din perspectiva raportului volum de stocare / eficiență de accesare.

Printre cele mai vechi soluții la problema stocării datelor în sistemele de calcul se află benzile magnetice (magnetics tapes). Realizate sub formă de role cu bandă magnetică, casete magnetice sau casete-streamer, acestea prezintă avantajul capacității relativ mari de stocare a datelor comparativ cu dimensiunile fizice reduse. Dezavantajul major îl reprezintă modul de accesare a datelor, care este strict de tip secvențial, liniar de-a lungul benzii magnetice. Acest lucru este un impediment cu atât mai mare, cu cât datele stocate sunt utilizate în sisteme multimedia – unde este necesară accesarea rapidă și în mod aleator a informației. Un alt mare dezavantaj îl reprezintă sensibilitatea la interferențele accidentale cu cămpuri magnetice externe – pot duce la deteriorări irecuperabile a informațiilor de pe porțiuni întregi de bandă. Deasemenea, timpul și utilizările repetate (fie pentru scriere, fie pentru citire) sunt inamici implacabili ai înregistrărilor magnetice.

Discurile magnetice dure (magnetic hard disk) au fost concepute astfel încât să rezolve problema accesării aleatoare și rapide a informațiilor memorate. În momentul de față reprezintă soluția cea mai comună și mai avantajoasă pentru capacități mari de stocare, de tip citire / scriere.

Având capacitatea de stocare echivalentă a 600 de dischete magnetice flexibile (floppy disks) , fiind cu ceva mai mare și mai greu decât o dischetă, oferind o durată de viață teoretic nelimitată, discul compact (compact disc, CD), reprezintă ultima soluție tehnologică oferită de lumea electronicii digitale în domeniul stocării de date. Printre avantajele CD-urilor se pot enumera:

capacitate mare de memorare (uzual peste 500 Mb)

posibilitate de acces aleator a datelor înscrise pe disc

nu sunt afectate în nici un fel numărul de citiri repetate

nu se depreciază cu trecerea timpului, nu sunt afectate de incidența razelor X

dimensiuni fizice mici (12 cm în diametru), greutate, comoditate în manipulare

preț mic datorită producției de serie asemănator ștanțării discurilor de pick-up

Există însă dificultăți tehnologice privind scrierea repetată pe CD. Marea majoritate a acestora este însă de tip read-only.

De-a lungul timpului au apărut mai multe standarde și tehnologii de compact discuri. Specificațiile acestora alcătuiesc așa numitele cărți colorate .

Carte roșie. Conține specificațiile stocării sunetului stereo de înaltă calitate în formă digitală pe compact discuri. A fost creat de Sony și Philips în 1982 și stă la baza multor altor standarde CD. Un CD-DA (Compact Disc – Digital Analogic) poate conține până la 74 minute de sunete stereo de înaltă calitate utilizând formatul PCM (Pulse Coded Modulation) pentru a înregistra două canale stereo într-un spațiu de peste 600 Mb.

Cartea galbenă. Dezvoltă cartea roșie în vederea stocării pe CD a informației digitale de orice tip (CD-ROM) , nu numai sunet. În același timp îmbunătățește corecția erorilor (necesară în cazul informației numerice) și viteza de accesare aleatoare a datelor de pe disc.

Cartea verde. (CD-I) Este un derivat al cărții galbene conceput pentru a permite mixarea de imagini, sunet și film pe aceeași pistă de disc. Standardul CD-I presupune existența unui sistem compus dintr-un interpretor CD-I autonom (standalone CD-I player) conectat la un aparat TV. Citirea datelor de pe discurile CD-I se face de către un sistem de operare denumit OS/9. Necesitatea acestor resurse hard și soft specializate are ca rezultat o piață redusă de producători și utilizatori acestui standard.

CD-ROM /XA (CD-ROM /eXtended Architecture). Standard propus de firmele Sony, Philips și Microsoft în 1988 ca o extensie la cartea galbenă prin adăugarea unor idei interesante de la CD-I, în special combinarea pe aceeași pistă a sunetului și imaginilor. Este nevoie de un hardware specializat pentru a decodifica și separa canalele cu conținut diferit de pe pistă. dând impresia de medii multiple interpretate simultan și sincron. Utilizând tehnici de compresie, CD-ROM /XA permite stocarea a de 4 până la 8 ori mai mult sunet față de CD-DA.

Cartea porocalie. partea I (CD-MO). Specifică o capacitate de memorare mare și posibilitatea de scrieri repetate pe disc. Metoda magneto-optică se bazează pe termo-polarizare magnetică a materialului ce compune discul. Pentru a înscrie datele dorite pe un anumit segment (bloc) al discului, acesta se încăzește la o temperatură de peste 150 grade Celsius. Simultan, un câmp magnetic de intesitate de 10 ori mai mare ca cea terestră orienteză corespunzător datelor ce vin înscrise, dipolii din cadrul sectorului respectiv. Astfel adânciturile de pe suprafața discului corespund intesității scăzute a câmpului magnetic, iar ridicăturile corespund intesității ridicate.

Cartea portocalie. partea II (CD-WO sau CD-R sau WORM) Înscrierea acestui tip de CD se poate realiza o singură dată prin supraîncăzire la o temperatură de peste 250 grade Celsius a unui strat special din compunența discului, modificându-I proprietățile de reflexie a luminii.

Cartea portocalie. partea III (CD-RW) Aceste discuri pot fi rescrise de un anumit număr de ori. Citirea lor trebuie să se dacă în prezența unor circuite de control automat al amplitudinii (AGC – Automatic Gain Control).

Cartea albă. (VCD) Conține sunet și imagini (film) codificate cu algoritmi de tip MPEG-1. Ieșirea dispozitivelor de citire VCD este de tip TV: PAL la o rezoluție de 352×288 (25 fps) sau NTSC la o rezoluție de 352×240 (30 fps).

Odată cu progresele tehnologice înregistrate în producerea de compact discuri, s-a propus ca următoarea generație de CD-uri optice să crească semnificativ capacitatea de stocare și viteza te acesare a datelor memorate, oferind posbilitatea rulării unui film întreg, memorat sub formă de video digital de înaltă calitate pe o singură față de disc. Astfel că în 1997 10 companii de frunte din domeniul tehnologiei digitale constituite în Forul DVD (DVD Forum) a scos pe piață un nou produs numit DVD. DVD (Digital Versatile Disc) este un compact disc care poate stoca informații video și sunet cât și informații numerice. Există două tipuri de discuri DVD : DVD-Video și DVD-ROM. Dintre caracteristicile DVD-Video putem aminti:

peste 2 ore de video digital de înaltă calitate (peste 8 ore de video bifață, cu straturi duble)

suport pentru filme TV standard și panoramice (rate de aspect 4:3 respectiv 16:9)

până la 8 piste audio digitale (pentru mai multe limbi), fiecare cu până la 8 canale.

până la 9 unghiri ale camerei de filmat (aceeași secvență poate fi urmărită din maxim 9 unghiuri de vedere)

fiabilitate mare, practic neinfluențat de numărul de citiri repetate.

Video discurile digitale funcționează după aceleași principii ca și compact discurile.

2.5 Necesitatea de resurse în multimedia

Datele de tip imagine, în particular , implică stocare, manipulare și afișare, care ocupă spațiu foarte mare . Reprezentarea unei imagini cu precizie presupune unui spațiu foarte mare de memorie. În timp ce pentru un caracter se folosește un byte care uneori poate avea cât decât un înțeles, pentru a stoca o singură imagine e nevoie de de milioane de bytes, dacă imagine e color și are rezoluție mare. Dacă această imagine se schimbă rapid în timp, ca și când ar face parte dint-o secvență de film, e nevoie de capacități uriașe de stocare, transfer și procesare care sa poată susțină nevoile utilizatorului.

Aceasta implică patru factori importanți în toate sistemele multimedia . Primul se referă la spațiul foarte mare de stocare, în mod obișnuit de cateva sute de megabytes. Al doilea, este specializarea sporirea tehnologiilor de procesare pentru a se putea furniza, procesa și afișa volume mari de informație. Al treilea, arhitectura de ieșire și afișare să aibă capacitatea de a furniza imagini și sunete la standardele dorite de o aplicție dată. Al patrulea, este un mediu complex necesar utilizatorilor de a accesa informațile necesare.

Acești factori tind să asigure succesul oricărei platforme multimedia. Resursele mari de memorie necesare sugereaza folosirea discurilor optice. Cererea de procesare necesită o implementare foarte rapidă, calculatoare cu performanțe mari, de preferat echipate cu chip-uri capabile să prelucreze rapid informațiile, volumul mare al acestora ori să digitizeze sursa de informație, având în vedere faptul că inițal datele sunt în format analogic. Ieșirea și afișarea necesită arhitecturi care să suporte rezoluții color de înaltă calitate, cu posibilități de afișare RGB sau imagine compozită, și să suporte ieșire audio cu zgomot cât mai mic , stereo de înaltă fidelitate. În sfârșit și poate cel mai important, întregul sistem să fie ușor de folosit. Altfel spus, un sistem multimedia de succes este acela care oferă o interfață prietenoasă și transparentă utilizatorului.

Calculatoarele folosesc monitoarele pentru a afișa informații. Aceste monitoare folosesc lumină pentru a produce culoare. Orice culoare posibilă poate fi creată amestecând cele trei culori primare: roșu, verde și albastru. Înaintea monitoarelor color, ele erau capabile să afișeze doar în alb-negru (monocrom). Fiecare pixel putea fi aprins sau inchis. Acest lucru era reprezentat în calculator folosind un bit pentru fiecare pixel. Dacă bitul este setat (1), pixelul este aprins, dacă bitul nu este setat (0) atunci pixelul este stins. Pe un ecran capabil să afișeze 640 pixeli pe 480 linii, se vor ocupa 640 biți (80 bytes) pe linie, care dau 480*80=38400 bytes pentro o imagine. O imagine stocată astfel (1 bit pentru fiecare pixel) se numește imagine monocromă.

În ultima vreme însă au apărut monitoarele capabile să afișeze în culori. Cantitatea din fiecare culoare de bază folosită dă culoarea finală. Amestecând 100% roșu, 100% albastru și 100% verde va rezulta culoarea alb. Asignând 256 valori posibile fiecărei culori primare, calculatorul poate genera în jur de 16 milioane culori (256 valori pentru roșu, 256 valori pentru verde, 256 pentru albastru dau 256*256*256 combinații posibile). Pe un byte se pot reprezenta 256 valori (de la 0 la 255), un pixel folosește 3 bytes (24 biți pentru un pixel RGB) pentru a stoca informația despre culoare. O imagine care stochează informațiile despre pixeli astfel se numește imagine truecolor sau imagine pe 24 biți. În calculator o imagine de 640×480 va ocupa 640*3*480=921600 bytes (900Kb) în comparație cu 38 Kb dacă imaginea ar fi monocromă. Culorile ocupă spațiu destul de mare. Unele calculatoare nu sunt capabile să se descurce cu atâtea culori, și folosesc doar 256 culori. Aceasta este o limitare a calculatorului (hardware sau software) și nu a monitorului. Cele 256 culori disponibile pot fi alese din întregul spectru de culori (16 milioane), dar numai 256 la un moment dat. O imagine conținând 256 culori poate fi stocată mai eficient dacă fiecare pixel nu conține culori full 24 biți, iar imaginea are o tabelă cu 256 intrări de culori pe 24 de biți. Fiecare pixel poate fi asignat la o valoare indicată de un tabel. Acesta este numit tabel de regăsire a culorii din imagine (CLUT sau LUT).

Aplicațiile la debite reduse sunt posibile datorită compresiei datelor de intrare (imagini și sunete digitizate). Compresia imaginilor și a sunetelor sunt posibile datorită redundanței existente, algoritmii de compresie asigurând eliminarea acestei redundanțe, reținând doar informațiile absolut necesare pentru reconstituirea sunetului /imaginii.

3. Algoritmi de compresie

3.1. Problema compresiei / decompresiei

Creșterea continuă a volumului de date, într-un raport inegal cu cel al creșterii capacităților de stocare, a generat o nevoie acută de spațiu . Acest spațiu este “acoperit” din ce în ce mai mult folosind compresia de date.

Compresia poate fi definită astfel : “ Tehnica de reducere a cantității de date prin algoritmi sau scheme specifice”.

Această lipsă este accentuată când este vorba despre datele multimedia (imagine, sunet, video).Pentru ne face o idee despre nevoia de compresie putem da câteva exemple :

500,000 de pagini de text (aprox.. 2KB/pag) necesită 1GB spațiu de stocare;

3,000 de imagini color (în medie 640x480x24 biți)=1MB/imagine) ocupă 3GB;

500 de hărți (in medie 640x480x16 biți=0,6MB/hartă) ocupă 0,3 GB;

50 de filme digitizate ( durata de 1min la 640x480x24x30fps=27,6MB/sec) au nevoie de 82,8 GB;

viteza de transfer și căutare relativ mică a dispozitivelor de stocare nu permit redarea în timp real a datelor multimedia necomprimate (în special cele video);

lățimea de bandă a rețelelor actuale care nu permit transmisia de date în timp real;

O problemă clasică este cea apare în cazul în care vrem să redăm un film digitizat la o rezoluție de 620×560 cu o profunzime a culorii de 24 de biți pe pixel. Acesta are nevoie de 1MB/cadru. La o rată de redare standard de 30fps vom avea nevoie de circa 100GB pentru o oră de film. În cazul în care vom dori să îl redăm vom avea nevoie de o rată de minim 30MB/s. Dacă filmul a fost înregistrat pe CD, la o rată medie de 3MB/s , vom avea nevoie de 10 ore pentru a urmări filmul.

Astfel , pentru a trece peste limitări de acest gen, compresia devine inevitabilă. Înainte de a o aplica, trebuie să-i știm și limitele. O sintetizare a posibilităților de compresie existente la ora actuală este prezentată în tabelul de mai jos:

După cum am putut vedea, compresia este o soluție mai ieftină și mai la îndemână, decât achiziționarea de noi dispozitive de stocare, sau unele mai performante pentru a asigura spațiul și viteza necesare mai ales datelor multimedia.

Totuși, și în cazul compresiei apar unele limitări ,unele de ordin teoretic în ceea ce privește rata de comprimare, altele de ordin practic în ceea ce privește viteza de compresie și mai ales de decompresie. Rata de compresie este posibilă datorită unei anumite ordini în care se află datele, a limitării de percepție umană a detaliilor auditive și vizuale precum și a modului de reprezentare a datelor în calculator. Matematic este imposibil să comprimi fără pierdere date cu adevărat aleatoare. Șirurile complet aleatoare nu sunt comprimabile; cea mai mică reprezentare a șirului este șirul însuși. Problema se poate pune în felul următor : “Care este cel mai scurt program p care executat să dea șirul s?”. Mărimea acestui program este cunoscută sub denumirea de “complexitatea Kolmogorov”. De asemeni, prin compresie, se solicită intens capacitatea de calcul a procesorului. Sunt necesare calcule complicate, în general în domeniul numerelor reale, pentru a putea obține datele comprimate. În domeniul video, pentru operații critice (transmisia în direct), există chiar chip-uri specializate pentru compresie în timp real a fluxului de date, degrevând astfel procesorul (coprocesorul) de această operație.

Decompresia este operația inversă compresiei. Prin decompresie trebuie să obținem, cel puțin teoretic, datele comprimate inițial. În general decompresia este mai puțin complicată fapt ce duce la timpi de operare mai mici decât în cazul compresiei. Acesta este un avantaj al compresie / decompresiei, deoarece compresia o putem realiza pe sisteme de calcul capabile, cu resurse suficiente pentru această operație, decompresia făcându-se la nivel de simplu utilizator, pe sisteme de calcul medii.

Decompresia este la fel de importantă ca și compresia pentru că datele refăcute trebuie să fie dacă nu identice cu cele inițiale, să fie cel puțin o aproximare bună a lor.

3.2 Clasificarea algoritmilor

Reducerea volumului de date pentru stocare și transfer se datorează tehnicilor de comprimare și decomprimare. Compresia se aplică tuturor tipurilor de date: textuale, grafice, vectoriale, imagini fixe sau animate, sunet, imagini video. În conformitate cu specificul fiecărui tip de dată, se aleg algoritmi potriviți, specifici sau normați. În tabelul de mai jos se prezintă o sinteză a unor algoritmi de compresie.

În funcție de caracteristicile datelor ce urmează a fi prelucrate procesul de compresie este diferit. Astfel la compresia imaginilor bitmap, codajul se aplică la nivelul datelor acesteia, în timp ce la imaginea vectorială el este rareori aplicat. Însuși procesul de vectorizare poate fi considerat ca o operație de comprimare, datorită stocării imaginii prin punctele specifice componentelor sale. Deci, chiar necomprimate, imaginile vectoriale sunt mult mai mici în comparație cu cele matriciale, ele fiind generate sub formă matematică.

Analizând tipurile de algoritmi folosiți la comprimare, observăm că aceștia pot fi grupați după următoarele criterii:

după volumul de informații recuperate la descompunere

algoritmi fără pierdere la comprimare;

algoritmi cu pierderi, adică informația recuperată nu este în totalitate aceea de înainte de comprimare;

după timpul necesar decompresiei în raport cu decompresia:

comprimare simetrică, timpii de comprimare și decomprimare sunt egali;

comprimare asimetrică, în sensul că timpul necesar comprimării este mult superior timpului de decompresie;

3.3 Formate de fișiere multimedia

3.3.1 Formate de fișiere imagine

În orice prezentare multimedia , elementul imagine este aproape nelipsit, întrucât impactul vizual este foarte puternic pentru om. În producțiile multimedia ea poate să apară sub formă matriceală sau sub formă vectorială.

Imaginea matriceală (bitmap) este o imagine fixă, obținută prin scanare. De regulă, orice imagine captată de la o sursă externă este o imagine bitmap, secvențele de biți ce codifică această imagine reprezentând punctele de pe ecran și culorile asociate lor. O deficiență a acestei reprezentări constă în aceea, că ea nu poate fi adaptată unei scări variabile de vizualizare. Astfel, orice mărire a dimensiunii imaginii este însoțită de o degradare vizuală.

Cu toate acestea există numeroase formate de fișiere care păstrează imaginea sub forma unei matrici de puncte. Câteva din aceste formate de fișiere sunt prezentate în tabelul următor :

Dintre aceste formate, JPEG este unul ce atrage mai mult atenția prin algoritmii folosiți si performanțele atinse.

Imaginea Vectorială este un alt format sub care poate apare imaginea drept componentă multimedia. Din punct de vedere informațional, reprezentarea imaginilor este mult mai bogată în comparație cu reprezentarea în format matriceal. În plus această codare este mai complexă, luând în considerare și elemente ce țin de semantica imaginii. Grafica vectorială interpretează imaginea ca o succesiune de puncte și funcții matematice, care descriu geometric componentele acesteia. DE multe ori, pe considerente de spațiu și resurse vom fi în situația de a trece dintr-un format în altul. Procesul care convertește o imagine raster într-o imagine vectorială se numește rasterizare. Acest proces presupune în fapt aproximarea formelor și componentelor imaginii bitmap prin funcții matematice. Din acest motiv, el se recomandă imaginilor care conțin în special linii, text, grafice, diagrame, hărți, desene, imagini ușor de recompus din figuri geometrice. Ca urmare a vectorizării, s-a constata o rată de compresie de până 200:1. Pentru imaginile complexe, mai dificil de descris în termeni matematici, raportul de comprimare prin vectorizare este mai mic.

Spre deosebire de imaginea matriceală, stocare imaginilor vectoriale este independentă de scara de afișaj, ceea ce permite o modificare a dimensiunii fără a-i deteriora calitatea.

3.3.2 Formate de fișiere de sunet

Sunetul ca element multimedia, există în două clase de formate bine delimitate : analogic și digital. Prezent inițial în formă continuă, fluxul sonor a fost și a rămas puternic dependent de parametrul timp, numerizarea lui nefăcând decât să cuantifice această dependență.

Dintre formatele de fișiere de sunet pe PC, formatul WAV de la Microsoft primează. Acesta este o particularizare a formatului RIFF (Resource Interchange File Format) definit tot de Microsoft pentru schimbul de resurse.

Câteva formate utilizate pe scară mai largă sunt descrise în tabelul de mai jos:

Dacă până acum formatul WAV era cel mai răspândit, dezavantajele formatului precum și descoperirile tehnologice care au mărit considerabil puterea de calcul a PC-urilor au determinat dezvoltarea unui nou format, standardizat de grupul MPEG și anume MP3.

Întrebările referitoare la avantajele standardului MP3 vizavi de formatul Windows convențional își găsesc rapid răspunsul ; zece fișiere MP3 ocupă pe harddisk tot atâta spațiu ca un singur fișier WAV. Fișierele WAV de calitate (44k,1 kHz, 16 biți, stereo) sunt destul de mari. După convertirea unei piese muzicale de 3 minute de pe un CD audio obișnuit (formatul audio seamănă foarte mult cu WAV-ul digital) solicită la fel de mult spațiu pe harddisk ca un pachet Office. În general un minut de pe un CD audio corespunde unei cantități de date aproximativ de 10 MB. În schimb fișierele MP3 sunt suple, având capacitatea de a reduce cantitatea de date dintr-un fișier WAV cu circa 90 % – fără a pierde din calitate. Astfel un track audio de un minut va ocupa mai puțin de 1 MB pe harddisk. Un alt avantaj este că fișierele sunt divizate astfel încât melodia poate fi accesată direct (nu este nevoie să fie decodată melodia până în noul punct de redare) .

Dezavantajul este că fișierele pentru a fi decodate în timp real datorită algoritmului de compresie complicat necesită pentru derulare minim un procesor Pentium la 60 MHz.

Numele de MP3 este o prescurtare de la standardul folosit în compresie. Titulatura corectă este ISO MPEG audio layer 3. MP3 este rezultatul experienței acumulate în timp, prin crearea și utilizarea formatelor anterioare. Extensia de layer 3 desemnează tehnologia pentru o pistă audio a formatului video. Înainte erau folosite formatele layer 1 și layer 2 , mai slabe din punct de vedere al compresiei. algoritmul de compresie audio layer 3 a fost dezvoltat în Institutul pentru Circuite Integrate din Erlanger. Inițial acest format a fost creat pentru a se economisi spațiu pentru înregistrarea pistelor audio ale filmelor în format MPEG 2.

Fișierul WAV necesită o cantitate mare de spațiu pentru a se păstra normele uzuale de calitate a sunetului (44,1 kHz pe 16biți). Fișierele WAV pot fi comparate cu fișierele grafice bitmap necomprimate ca BMP sau TIFF în care fiecare punct este stocat necondiționat pe o anumită unitate de spațiu (1, 8, 16, 24 biți). Astfel că la redarea unei astfel de imagini este nevoie de o puternică rată de transfer între harddisk, procesor și placa grafică. În același mod sunt stocate informațiile despre sunet într-un fișier WAV : fiecare 1/x de secundă (x fiind frecvența de eșantionare sau de sampling) ia o anumită valoare indiferent dacă este vorba de un sunet sau că domnește liniștea absolută. Bineînțeles că nu putem să ne debarasăm de formatul WAV. Fișierele WAV pot fi create relativ simplu , chiar și de neinițiați. În afară de aceasta , decodificarea fișierului se face de către placa de sunet fără nici o altă întârziere, cu alte cuvinte procesorul nu este implicat în decodificarea piesei muzicale. Fișierele MP3 sunt decodificate de procesor, în timp ce player-ul le derulează fără întârzieri. Cine dorește să înregistreze pe calculator o piesă muzicală, trebuie mai întâi să stocheze track-ul de pe CD pe hard în format WAV. Acest lucru se poate realiza cu ajutorul unor programe ( de exemplu WINDAC ) în câteva minute, în funcție de viteza de citire a unității de CD-ROM. Acest proces este numit “grab” fiind în momentul actual unul din indicatori de viteză a unității de CD-ROM. După aceea începe procesul de codificare. Utilitarul de DOS L3ENCODE are nevoie de aproximativ 15 minute pentru a transforma aproximativ 3 minute de sunet în format WAV în sunet în format MP3, și asta cu un procesor Pentium la 120 MHz. Un algoritm de compresie mai avansat este cel lansat de Xing. Cu un program ce folosește un astfel de “motor de compresie” se pot obține rate de până 2,7 ori pe un procesor Pentium la 233 Mhz, adică 2,7 minute sunt comprimate într-un minut, în acest timp incluzând și timpul de grab.

Secretul acestui procedeu de codificare atât de complicat și cu un necesar de calcul foarte mare nu este însă total dezvăluit. Părinții spirituali ai algoritmului se referă la codarea perceptuală, care presupune că pasajele nesemnificative ale curbei de sunet pot si pur și simplu eliminate, astfel că domeniile de frecvență care sunt percepute vag sau sunt estompate de domenii de frecvență concurente mai puternice sunt scoase din fluxul de date trimis spre codare. Făcând o comparație cu grafica, fișierele MP3 sunt asemănătoare cu cele JPG. În imaginile JPG suprafețele de culoare nu sunt stocate punct cu punct, ci doar o descriere a lor. Umbririle , percepute mai slab de ochi, sunt estompate de cod, rezultatul fiind o copie oarecum fidelă a unei imagini, dar cu o economie de spațiu. La fel se întâmplă și în cazul fișierelor MP3 : datele nerelevante sunt îndepărtate iar curba sunetului se aproximează cu ajutorul unor funcții matematice care aproximează curba de sunet originală.

Poate cel mai ingenios domeniu de aplicație a formatului MP3 este muzica live în Internet. Fișierele Mp3, au pot fi codificate la o lățimea de bandă de 128 kbs, care asigură o calitate aproximativ egală cu cea a CD-ului. Concatenând canalele ISDN , fișierele MP3 pot fi derulate pe o pagină Web, fără a fi necesar download-ul. Dacă sursa este mai slab codificată, ceea ce afectează calitatea sunetului, la astfel de facilități poate avea acces și utilizatorii cu modem-uri analogice. Experții Internet-ului cred că piața audio on demand poate deveni o realitate în curând.

Pe piața de produse electronice audio, au apărut deja semnale în ceea ce privește utilizarea noii descoperiri. Firma Siemens lansează oferte inovatoare. Producerea unui hardware compatibil MP3 nu ar trebui să constituie o problemă. Un player de MP3 ar decodifica fișierele cu ajutorul unui procesor de semnal și le va derula ca track-urile unui CD obișnuit, cu deosebirea că în loc de 74 de minute, se pot audia mai mult de 12 ore de muzică.

Pe de altă parte nu trebuie uitat faptul că fișierele MP3 sunt rezultatul unei compresii “la sânge”, care încearcă să exploateze capacitatea limitată de a distinge sunetele a urechii umane. Însă pentru un profesionist scăderile de dinamică (mai ales în domeniul frecvențelor joase) este perceptibilă, MP3 nefiind o soluție profesionistă.

3.3.2 Formate de fișiere video

Semnalul video furnizat de sistemele de conversie poate lua diferite forme, fie semnal video codificat PAL, SECAM sau NTSC, fie în componente analoge RGB.

Conversia din formă analogică în formă digitală a semnalului video este asistat de un decodor. Obținerea video-ului numeric presupune digitizarea semnalului video analog, codificat fie pe componente, fie ca semnal compus. Această transformare presupune în ambele cazuri procese de eșantionare și de cuantificare.

Formatul standard video în Windows este AVI. Acesta a fost definit astfel încât să nu depindă de hardware pentru a fi rulat.

AVI (Audio Video Interleave) este un caz special de fișier RIFF (Resource Interchange File Format). AVI este definit de către Microsoft, fiind principalul format pentru date audio-video pe platforma Windows.

În win16 și win32, Microsoft a creat un sistem unificat pentru multimedia. Sistemul constă dintr-o interfață de control MCI (Multimedia Control Interface) sau o interfață de programare a aplicațiilor API (Application Programming Interface ) și driverele asociate la MCI. Redarea fișierelor AVI poate fi controlată prin MCI API și driverul MCIAVI.DRV.

Datele video dintr-un fișier AVI poate fi formatat și comprimat în diferite moduri. Câteva codec-uri sunt:

Intel Indeo

Microsoft Video 1

Microsoft RLE

CinePak

Avi nu este restricționat la aceste codec-uri. Odată cu apariția Web-ului au fost create codec-uri pentru a face față noilor cerințe cu privire la ratele de transfer scăzute din rețele, încercându-se să se aplice tehnologii avansate de estimare și compensare, wavelet, fractali, și alte tehnici pentru a permite rate scăzute ( cum ar fi cea de 28.8 Kbps pentru liniile telefonice) pentru Internet.

AVI – necomprimat

Utilizatorii pot stoca fișierele AVI folosind cadre necomprimate. Pentru aceasta nu e nevoie de nici un codec. În schimb nu toate imaginile bitmap necomprimate sunt identice. Există o mare varietate de formate color pentru imaginile bitmap. Unele din aceste formate sunt recunoscute ca standard pe toate sistemele. Implicit, Microsoft folosește formatul de 16 biți pe pixel, 5 biți pentru roșu, 5 biți pentru verde, 5 biți pentru albastru, un bit fiind utilizat pentru transparență sau pentru a asigura o varietate mai mare de culori pentru una din culorile de bază (RGB).

Formatul Microsoft de 32 de biți pe pixel folosește câte 8 biți pentru fiecare culoare de bază. Rămâne un bait (cel mai semnificativ) care este setat pe 0. Practic sunt folosiți doar 24 de biți dar pentru ca operațiile transferurile de memorie să se facă mai eficient, se folosesc 32 de biți.

Pe lângă codec-urile standard au apărut și s-au dezvoltat altele noi.

Motion JPEG

Majoritatea sistemelor de captură și editare video în fișiere AVI folosesc compresia video Motion JPEG. În Motion JPEG, fiecare cadru este comprimat separat folosind standardul de compresie a imaginilor statice. Nu este folosită diferența între cadre sau estimarea mișcării. Acest lucru face ca imaginile să fie ușor de editat fără a pierde din calitatea imaginii. Motion JPEG este folosit în general doar în faza de authoring , după care, pentru distribuție pentru utilizatori, se folosesc alte codec-uri.

Motion JPEG folosește Transformarea Cosinus Discretă (DCT) pentru compresie.

Editable MPEG

Există câteva companii care definesc scheme pentru MPEG editabil (doar cadre I) în fișiere AVI, Xing Technology’s fiind una dintre ele. Editarea MPEG se face doar pe cadre de tip I fiind în rest similar cu Motion JPEG. Împachetând doar cadre de tip I, editable MPEG este folosit în Video for Windows în aplicații de authoring sau editare ca Adobe Premiere.

VDOWave sau VDOLive din VDONet

VDOWave este un codec video “scalabil”. Acesta este folosit în NetShow 2.0 doar ca decodor. În unele teste VDOWave apare ca având performanțe semnificativ superioare lui MPEG-1 sau alte codec-uri ce folosesc DCT la rate mici de biți. VDOWave este o combinație de compresie de imagini bazate pe wavelet , compensare de mișcare și diferența între cadre.

VDOLive include unelte ca VDOCapture , VDOClip și VDOLive Player.

Indeo Video Interactiv

Indeo Video Interactiv, Indeo 4.1, este o nouă versiune de Indeo de la Intel bazată pe un algoritm de wavelet hibrid, aceasta fiind principala diferență față de Indeo 3.2 care folosește cuantificarea vectorială (Vector Quantization). Indeo 4.1 suportă facilități în plus în ceea ce privește noul algoritm de compresie cum este de exemplu transparența. El poate fi instalat în ca și codec Video for Windows sau în mediul ActiveMovie.

ClearVideo (RealVideo)

ClearVideo este un codec de la Iterated Systems. Acest codec este folosit pentru autorii de RealAudio, sub numele de RealVideo. ClearVideo folosește compresia imaginilor cu ajutorul fractalilor, Iterated fiind importantă producătoare de tehnologi comerciale de compresie de imagine și video cu ajutorul fractalilor. Codarea cu fractali pare să fie mai înceată (datorită calculelor ). Din punct de vedere video calitatea este similară, dacă nu chiar superioară celei din MPEG-1.

SFM (Surface Fitting Method)

Crystal Net Corporation este cea care are licența la această tehnologie, SFM. Aceasta vrea să fie o tehnologie de compresie video la rate scăzute de biți pentru rețele ISDN și POTS (Plain Old Television Service)

QPEG

Q-Team produce codec-ul pentru Video for Windows numit QPEG. Inițial Qpeg suporta culori pe 8 biți pe pixel, ulterior fiind dezvoltate variante pentru 16 și 24 biți, suport MMX, precum și alte facilități. Qpeg suportă și MPEG-4 pentru PC.

H.263

H.263 este un standard internațional, bazat pe Transformarea Cosinus Discretă (DCT) și compensarea mișcării. Scopul sau este de a atinge rate foarte scăzute de biți pentru compresia video.

Mpeg-4

Mpeg-4 este un codec pentru Video for Windows, identificat în Control Panel->Multimedia->Devices->Video Compression Codecs ca fiind “MPEG-4 High Speed Compressor”. Cu ajutorul lui NetShow 2.0 Player se pot reda fișiere AVI codate MPEG-4 iar cu NetShow 2.9 Tools se pot coda fișiere AVI folosind compresia video MPEG-4. Dimensiunea imaginii de comprimat trebuie să fie de 176×144.

Audio digital

Pentru a reprezenta digital o undă sonoră va trebui să o cuantizăm folosind de exemplu un convertor analog-digital. În teoria prelucrării semnalelor audio, se specifică faptul că frecvența de eșantionare a fluxului de intrare trebuie să fie de două ori mai mare decât cea mai mare frecvență întâlnită în timpul culegerii datelor. Practic în procesul de digitizare undele sonore sunt convertite în numere reprezentând de fapt volumul (amplitudinea sunetelor).

Urechea umană nu poate recunoaște sunetele după volum., ca urmare , înregistrarea amplitudinii semnalului se poate face prin rotunjirea valorii citite la cel mai apropiat întreg apropiat de un multiplu de 16. (reducerea la o valoare pe 4 biți) fără ca respectiv calitatea sunetului să aibă prea mult de suferit. Important este ca algoritmul de compresie să nu modifice răspunsul în frecvență. Am ajuns astfel la o rată de compresie de 2:1.

Aproape toți algoritmii de compresie folosiți la compresia datelor audio folosesc două tehnici de bază: silence coding și respectiv modulația delta (delta modulation). Dacă examinăm unda ce reprezintă vorbirea umană vom putea observa că există multe zone aproximativ plane între cuvintele vorbite. Silence coding reprezintă tocmai aceste pauze în variația amplitudinii semnalului pe un singur octet. Cât timp eșantioanele fluctuează cu o valoare mai mică decât un interval prestabilit, întreaga secțiune este considerată o pauză. Totuși în acest mod putem fi puși în situația de a pierde o serie de frecvențe foarte înalte ( de exemplu la pronunțarea literei s).

Cealaltă metodă de compresie delta modulation încearcă să găsească o metodă eficientă de înregistrare intervenite în fluxul de date. Prin modelarea schimbărilor intervenite de la un eșantion la următorul, vom putea menține răspunsul în frecvență al datelor de intrare cu o eroare aproape nulă. De fapt prin această modelare a schimbărilor intervenite în date, noi înregistrăm informații referitoare la prima derivată a undei sonore sau mai bine zis stocăm informații despre viteză. Orice eroare apărută la refacerea datelor inițiale (prin decomprimare) poate să dea naștere la o frecvență parazită. Delta modulation este un concept simplu. Să presupunem că avem valoarea 0 urmată de 115 . Diferența dintre cele două valori consecutive este 115. În loc să stocăm această valoare vom putea introduce numărul +7 luând în considerare un multiplicator în valoare de 16. După cum se poate observa +7*16=112, deci, nu am obținut chiar valoarea originală 115. Dar această mică diferență în înregistrarea variației amplitudinii este prea puțin importantă în raport cu faptul că am menținut răspunsul în frecvență. Deci am stocat o valoare (115) ce necesita 8 biți printr-un număr care se poate reprezenta pe 4 biți prin reprezentarea numerelor de la –8 la +8. Trebuie precizat deasemenea faptul că în cazul modulației delta avem sub control două variabile: rezoluția de înregistrare și multiplicatorul. Prin rezoluția de înregistrare înțelegem numărul de biți necesari pentru a reprezenta diferența (modulația delta) între două eșantioane consecutive. Cu cât utilizăm mai puțini biți în acest scop, cu atât rata de compresie va crește. Dacă folosim o rezoluție de 1 bit atunci vom acumula o rată de compresie de 8:1 dar pe de altă parte vom ajunge să folosim o modelare slabă a datelor. În fond va trebui să ajungem la un compromis între calitatea sunetelor și rata de compresie. Multiplicatorul este acea valoare care controlează mărimea modulației delta. În mod ideal, această constantă de multiplicare trebuie să permită o cât mai bună aproximare a valorii originale ce reprezintă diferența dintre două eșantioane consecutive. În cazul în care nici o rezoluție și nici un multiplicator nu modelează datele cu o acuratețe destul de mare, în raport cu necesitățile noastre. atunci vom stoca eșantionul în forma sa originală, acest lucru cauzând o resincronizare – practic calitatea sunetului nu va fi compromisă.

3.4 Algoritmi specifici

3.4.1 Relația compresie – algoritm

Există câțiva algoritmi de bază folosiți în codec-urile din Windows. De exemplu, Indeo 3.2 și Cinepack folosesc amândouă Vector Quantization. Standardele internaționale MPEG-1 , MPEG-2, MPEG-4, H.261 și H.263 toate folosesc o combinație dintre Transformarea Cosinus Discretă (DCT) și estimare / compensare a mișcării. Unele codec-uri mai recente folosesc compresia imagini bazată pe transformarea wavelet (Discret Wavelet Transformation – DWT). Alte tehnologii includ compresia imaginilor folosind fractali.

Compresie fără pierderi

Compresia poate fi fără pierderi dacă nu a fost pierdută informație pe parcursul procesului de compresie. Imaginea obținută prin decompresie trebuie să fie identică, bit cu bit, cu imaginea inițială. Formatul GIF este folosit pe larg ca format de compresie pentru imagine sau video (GIF89a sau GIF animat). Algoritmii folosiți pentru compresia fără pierderi sunt cei de tip RLE, Huffman.

Compresia cu pierderi

Compresia poate fi cu pierderi dacă informația este pierdută de-a lungul procesului de compresie. Aceste scheme exploatează limitările sistemului vizual și auditiv uman, unele erori fiind nedetectabile de către om. Chiar dacă ,de exemplu, două imagini sunt diferite la nivel de bit, observatorul uman nu poate face distincție între ele. Unele erori sunt detectabile de ochi dar sunt acceptate altele sunt foarte greu distinse. Cel mai folosită schemă standard de compresie este JPEG și MPEG.

Compresia fără pierdere perceptuală

În compresia cu pierdere, schema de compresie poate fi confundată în cazul în care observatorul uman nu poate face diferență între sursa originală și cea comprimată cu pierdere. Majoritatea datelor multimedia comprimate au factori de calitate. Dacă acești factori nu sunt bine setați, datele vor fi percepute ca fiind cu pierderi.

Compresia cu pierdere naturală

JPEG , MPEG și alte compresii cu pierdere a imaginii sunetului și video sunt de obicei dincolo de punctul de percepere a pierderii de informație, ele fiind acceptate ca fiind fără pierderi de către subiectul uman. Dacă gradele de compresie și decompresie a imaginii sunt asemănătoare sau identice cu cele de degradare naturală a imaginii care au loc în lumea reală, sistemul vizual uman nu va face diferența. Pierderea detaliilor fine din imagine este acceptabilă de obicei deoarece oamenii percep obiectele în lumea reală cu diferite grade de detalii, în funcție de distanța între el și obiect, indiferent dacă privește direct sau nu spre obiect. Omul vede mai puține detalii dacă obiectul este depărtat. Când se uită direct la obiect, acesta folosește o foarte mică parte din retină de mare rezoluție. Dacă obiectul este într-o parte față de direcția de vedere a subiectului, acesta folosește o parte cu rezoluție slabă.

Compresia cu pierdere nenaturală

Compresia de calitate slabă va introduce artificii vizuale sau auditive care sunt deranjante pentru observator respectiv ascultător. Un exemplu sunt “blocurile” artificiale vizibile la video puternic comprimat MPEG și imagini comprimate codec-uri bazate pe DCT. Din acest punct compresia va pierderi va introduce “artificii” care sunt nenaturale și percepute ca obiecte în scenă sau linii “false” în imagine. Sistemul vizual uman este foarte sensibil la linii și la vârfuri. Una din funcțiile sale principale este să detecteze și să caracterizeze din punct de vedere fizic obiectele. Orice algoritm al unui codec care distruge sau creează un vârf în imagine este observat, mai ales dacă vârful sau linia este interpretată ca linie de demarcație a unui obiect.

Toate codec-urile utilizate folosesc algoritmi de compresie cu pierderi. La rate de compresie destul de mari, majoritatea lor au probleme cu “vârfurile” din imagine. Vector Quantization, Transformarea Cosinus Discretă bloc și wavelet pe care se bazează compresia de imagine și video nu reprezintă matematic noțiunea intuitivă de vârf sau linie.

În concluzie, folosind diferite codec-uri , autorul fișierului digital trebuie să tindă spre compresia cu pierdere naturală.

3.4.2 Algoritmi utilizați în compresia datelor multimedia

Textul este o formă de reprezentare a informației multimedia. El nu pune probleme prea mari în ceea ce privește spațiul ocupat. Totuși se pot utiliza algoritmi de compresie pentru a reduce acest spațiu. Textul prin natura sa definește informații exacte, prin urmare și algoritmii folosiți vor fi fără pierdere de informații. Astfel de algoritmi sunt RLE, Huffman.

Includerea elementului imagine într-un proiect multimedia pune din nou problema spațiului și a resurselor ocupate. De aceea, micșorarea cantității de informație transmisă se realizează prin codificare, care în general vine de la standardul JPEG. Acest algoritm, specificând unii parametri de compresie, poate comprima imaginea la rate ce variază între 2:1 și 100:1.

JPEG

Printre numeroșii algoritmi de compresie a imaginilor fixe s-a impus ca standard JPEG (Joint Photographic Experts Group), creat la inițiativa ISO a CCITT. Acest standard se încadrează în clasa metodelor de comprimare cu pierdere și utilizează algoritmi hibrizi bazați pe Transformarea Cosinus Discretă (DCT) și pe codajul Huffman. Principiul sub care funcționează JPEG este stabilirea de relații între pixelii unei imagini și codificarea lor, iar prin aplicarea sa se poate obține o imagine comprimată într-un raport de 75:1, fără o degradare vizibilă a calității acesteia.

Structura standardului a fost finalizată în 1989 și poartă denumirea de ”compresia numerică a imaginilor fixe de natură fotografică”. Realizarea normei JPEG este condiționată de existența a trei elemente necesare:

un codor, care primește datele numerice ale imaginii sursă și generează, conform unui ansamblu de proceduri, datele imaginii comprimate;

un decodor, care transformă date imagine comprimată în datele imaginii reconstruite, folosind un ansamblu de proceduri;

un format de transfer, care prezintă datele imagine comprimată, precum și specificațiile obținute din procesul de codaj;

JPEG are rezultate foarte bune de compresie pentru imaginile color și cele în nuanțe de gri, însă are probleme la lucrul cu imaginile alb-negru. Sunt întâlnite probleme și la lucrul cu imaginile unde culorile au fost mapate (au fost folosite culori din paleta Windows standard ), trebuind ca anterior imaginile să fie expandate într-o reprezentare normală.

JPEG lucrează bine pe imaginile constituite din tonuri continue de culoare. Imaginile care nu se compresează bine sunt cele cu salturi dese ale valorilor culorilor.

Există mulți parametrii care influențează compresia JPEG, în funcție de valorile acestora putându-se stabili gradul de complexitate al imaginii. Complexitatea variază de la 2:1 la 100:1 în cazul aceleiași imagini. Desigur gradul de compresie are o influență foarte mare asupra calității imaginii, În cazul unei compresii cu pierdere de informație, de 100:1, calitatea imaginea lasă de dorit. Însă pentru o compresie de 2:1, imaginea compresată JPEG este identică cu imaginea originală.

Formatul JPEG folosește patru algoritmi de compresie, compresia având rezultate diferite pentru fiecare. Sunt definiți următorii algoritmi:

compresia secvențială;

compresia progresivă;

codificare ierarhică;

Majoritatea echipamentelor hardware și a produselor software implementează numai algoritmul secvențial de compresie.

Modul secvențial

Pasul 1 Se transformă imaginea din punct de vedere cromatic. Imaginea este transformată într-un sistem de coordonate tridimensional. Se acordă o importanță mare luminozității, aceasta fiind considerată o primă axă a compresiei. Celelalte două axe sunt folosite pentru codificarea culorii.

Motivul pentru care luminozitate este considerată variabilă principală este pierderea de informație, care la nivel cromatic este mai puțin sesizată de ochiul uman. Această schimbare nu este neapărat necesară deoarece algoritmul de compresie acționează asupra oricărei componente de culoare independent. Oricum, rata de compresie va fi mai mică din moment ce vor trebui codificate toate componentele care contribuie la calitatea luminozității.

La transformările de culoare se obțin pierderi ca urmare a rotunjirii, dar cantitatea de eroare indusă în această etapă este cu mult mai mică din moment ce vor trebui codificate toate componentele care contribuie la calitatea luminozității.

La transformările de culoare se obțin pierderi ca urmare a rotunjirii, dar cantitatea de eroare indusă în această etapă este cu mult mai mică decât eroarea la pașii următori.

Pasul 2 (opțional) Se realizează medii ale grupurilor de pixeli, grupuri denumite și componente de eșantionare. Componenta de luminozitate este lăsată la rezoluția ei originală, în timp ce componenta cromatică este deseori redusă la 2:1 pe orizontală și 2:1 sau 1:1 pe verticală. Vorbind în termeni JPEG, vom întâlni alternative de eșantionare numite: 2h1v sau 2h2v, dar tot la fel pot fi întâlnite alternativele 411 și 422.

La acest pas volumul de date se reduce la 1/2 sau 1/3 din lungimea inițială. În termeni numerici este o pierdere mare, dar pentru cele mai multe imagini acest lucru nici nu se observă, datorită capacităților scăzute ale ochiului uman relativ la informația cromatică.

De notat că eșantionarea nu se poate aplica imaginilor în nuanțe de gri, de aici provenind și rata mai mare de compresie pentru imagini color.

Pasul 3 Gruparea valorilor pixelilor pentru orice câmp în blocuri de 8×8 pixeli. Se transformă fiecare bloc de 8×8 pixeli cu ajutorul funcției DCT, o transformată Fourier, având ca rezultat o hartă a frecvențelor, cu 8×8 componente.

Se reprezintă numeric valoarea medie a fiecărui grup de 8×8 urmată succesiv de cele mai mari frecvențe din cadrul blocului până la cele mai mici. Motivul pentru care se face această transformare este că acum se poate reduce informația de frecvență mare fără a influența frecvențele scăzute.

Pasul 4 Pentru fiecare bloc, se obține un coeficient de cuantificare DC, după care rezultatul se rotunjește la întreg. Acesta este pasul fundamental de pierdere a informației. Cu cât un coeficient DC este mai mare, cu atât vom avea mai multe pierderi de date. Chiar dacă se obține valoarea minimă pentru DC, adică 1, tot se va pierde informație deoarece rezultatul transformatei DCT nu este întreg în mod normal.

Frecvențele mari sunt cuantificate mai imprecis (se obțin valori mari ale coeficienților DCT), decât cele mai mici, din moment ce ele sunt mai puțin vizibile ochiului.

Datele referitoare la luminozitate sunt cuantificate mai exact decât informațiile cromatice, prin folosirea unor tabele de cuantificare separate. Majoritatea programelor de compresie JPEG folosesc o simplă scalare liniară a acestor table, conform formatului JPEG standard, folosind doar un factor de calitate introdus de utilizator, pentru a determina multiplicatorul necesar scalării.

Pasul 5 După cuantificarea coeficienților DC se trece la compresia șirurilor de date folosind algoritmul Huffman standard, fie compresia aritmetică. În mod strict, standardul JPEG nu permitea decât compresia Huffman, compresia aritmetică fiind o extensie de optimizare.

În acest pas, nu se pierde informație. Multe implementări suportă însă numai modul Huffman nu și compresia aritmetică folosind Q-coding. Modul de compresie aritmetică oferă o compresie cu 5-10% mai bun[ decât algoritmul Huffman standard folosit.

Pasul 6 Într-un fișier JPEG toți parametrii de compresie sunt incluși în headere, astfel încât decompresia să poată fi făcută rapid, fără parcurgerea întregului fișier.

Printre acești parametri se includ tabelele de cuantificare și tabelele de compresie ale algoritmului Huffman. Pentru aplicații specializate, standardul permite eliminarea acestor tabele din fișier. acest lucru salvând destulă memorie. Acestea pot fi considerate tabele globale la nivelul aplicației.

Algoritmul de decompresie este inversul acestui proces. Decompresorul multiplică coeficienții reduși din tabela de cuantificare pentru a reproduce coeficienții DC. Din acest moment toate acestea sunt valori aproximative, valoarea pixelului reconstituit este de asemenea aproximativă, dar dacă tehnica a fost cea menționată, aceste erori vor fi greu vizibile. Un decompresor performant adaugă niște pași de netezire pentru a reduce discontinuitățile dintre pixeli.

Standardul JPEG nu specifică comportamentul exact al compresorului și decompresorului, lăsând loc pentru implementări calitative. În particular, implementările renunță la viteză în favoarea unei calități mai bune a imaginii, pentru alegerea unei aproximări mai exacte a coeficienților DC.

Rate de compresie asemănătoare, chiar mai bune, dar cu algoritmi asimetrici , se pot obține ajutorul fractalilor. Imaginile rezultate sunt de tip vectorial cu avantajele pe care le-am discutat anterior.

Comprimarea folosind teoria fractalilor este o metodă asimetrică, combinând rate mari de compresie (obținute într-un timp relativ mare) cu timpi de decompresie rapizi. Metodele de compresie se împart în două mari categorii : cu pierdere și fără pierdere. O metodă de comprimare fără pierdere produce la decomprimare o imagine identică cu cea originală. Limitările acestor metode, arată că în medie ratele de compresie obținute sunt de ordinul 2:1. În schimb metodele de comprimare cu pierderi dau posibilitatea obținerii unor rate incomparabil mai mari. Deși DTC (Transformarea Cosinus Discretă – nucleul tehnicii JPEG) și transformarea folosind teoria fractalilor fac parte din aceeași categorie de tehnici de comprimare cu pierderi, ele sunt totuși foarte diferite.

Această preocupare față de optimizarea raportului dintre cantitatea de informație și spațiul de stocare este întemeiată dacă ne referim la fenomenul multimedia are nevoie de tehnici avansate pentru a facilita intercomunicarea.

Definirea fractalilor

În scopul înțelegerii mai bine a fractalilor vom spune că imaginile de acest tip se pot mări la infinit prin folosirea unui set redus de instrucțiuni de date și instrucțiuni. În cazul unui fractal, considerând imaginile lumii reale ca fiind o reproducere la nivel macro a modelelor microscopice născute de natură, ajungem ca prin măriri repetate să vedem tot mai multe detalii. În acest sens putem spune de imaginile bitmap , care mărite ne dau posibilitatea să vedem blocuri mari având aceeași culoare, în cazul fractalilor mărirea înseamnă atingerea scopului pentru care au fost aceștia definiți.

Termenul fractal a fost definit de Benoit Mandelbrot ca fiind o structură fracționată care posedă forme similare la diferite scări de mărime (atât la scară macro cât și la scară micro). Practic fractalii reprezintă un model matematic care încearcă să reproducă fidel lumea reală; putem spune că reduc lumea reală la o ecuație. Ochiul uman pare a fi construit respectând structura fractalilor. Mandelbrot a observat că în spatele unor construcții ale naturii cum sunt norii, pădurile, munții stau structuri matematice.

Transformări afine

Acest concept al transformărilor afine reprezintă nucleul tehnicii de comprimare folosind fractalii. Prin transformare afină înțelegem o funcție matematică care realizează o serie de rotații, scalări, translații într-un spațiu n-dimesional. Un exemplu simplu în două dimensiuni ar putea fi următorul:

Această expresie poate fi scrisă, folosind matrici, astfel:

Matricea

determină rotire și scalarea iar vectorul cu două componente

determină translația. Aceste transformări mută punctul de coordonate (0,0) în punctul (e,f), punctul (1,0) în (a+e , c+f), punctul (0,1) în punctul (b+e , d+f) și punctul (1,1) în (a+b+e , c+d+f). Valorile a, b, c, d, e și f reprezintă coeficienții transformării afine.

Dându-se o imagine bidimensională și transformarea afină W, se poate genera un sistem de 6 ecuații (determinate de trei puncte aparținând imaginii originale și corespondentele lor de pe imaginea transformată) care prin rezolvare ne conduc la valorile celor 6 coeficienți (a, b, c, d, e, f) care spunem că definesc transformarea afină. Vom face precizarea că așa cum se va observa în continuare, noi vom alege stadiul final și vom încerca să determinăm care ar fi transformările prin care putem ajunge din stadiul inițial în cel final. Deci, altfel spus, cunoaștem datele de ieșire și trebuie să determinăm ce se află în “cutia neagră”.

Transformările afine nu sunt definite numai pentru imagini în două dimensiuni. Practic ele pot fi definite și pentru spații tridimensionale. În cadrul expresiei anterioare nu am folosit exprimarea de imagini tridimensionale pentru motivul că și o imagine bidimensională care folosește tonuri de gri sau umbre de diferite nuanțe, poate fi inclusă în spațiul 3D prin considerarea intensității luminoase ca făcând obiectul celei de-a treia dimensiuni.

Dacă aplicăm o transformare afină contractivă unei imagini bidimensională ce folosește o paletă de nuanțe de gri atunci pe lângă faptul că imaginea va deveni mai mică (referindu-ne la suprafață) se vor schimba și informațiile legate de luminozitate și contrast (care privesc componenta de intensitate luminoasă).

Una din teoremele ce fac obiectul nucleului aparatului matematic de susținere a algoritmului, care va fi prezentat în continuare, este teorema colajului. În sensul acestei teoreme un colaj al imaginii S este reprezentat de un set finit de N transformări afine contractive W1 cu proprietatea că

este aproximativ aceeași cu S. În cadrul relației de mai sus , prin simbolul am descris operația de reuniune a transformatelor imaginii S.

Teorema colajului afirmă următoarele: cu cât reuniunea imaginilor transformate aproximează mai bine imaginea originală, cu atât mai eficientă este codificarea imaginii, codificare obținută în urma stocării transformărilor aplicate.

Comprimarea

În lumea reală, informația poate fi codificată numai prin intermediul procesului, mare consumator de resurse sistem, de modelare a imaginii ca o colecție de segmente de fractali și prin găsirea, în continuare, a setului potrivit de transformări pentru fiecare segment.

Observația care l-a dus pe Michael Barnsley la descoperirea metodei a fost faptul că imaginile reale sunt pline de cazurile în care există o așa numită redundanță afină , altfel spus după un număr suficient de transformări afine, mulți biți ai imaginilor reale devin asemănători cu zone de întindere mai mică ale aceleiași imagini. Practic era nevoie de o metodă (sau un algoritm mai bine) ce să permită implementarea conceptelor matematice foarte vaste, în domeniul calculatoarelor.

Primul pas în cadrul procesului de comprimare folosind fractalii constând în împărțirea (partiționarea), imaginii în domenii (domain region) care să satisfacă două condiții:

să nu se intersecteze

să nu acopere suprafața întregii imagini

În ceea ce privește forma, aceste domenii pot avea orice formă și respectiv pot avea orice suprafață. În continoare, programul va trebui să definească o nouă colecție de regiuni (range region) care trebuie să fie mai mari decât domeniile definite în prima fază și spre deosebire de acestea nu este necesar ca ele să acopere întreaga suprafață a imaginii respectiv se pot suprapune (se pot intersecta).

Pentru fiecare domeniu (determinat la primul pas) programul trebuie să caute o regiune de tip range care, prin aplicarea unor transformări afine contractive 3D, îi aproximează cel mai bine. Transformările afine nu fac numai să comprime și respectiv să deformeze regiunile de tip range, ele micșorează în același timp contrastul și aduc schimbări luminozității, în cadrul dimensiunii reprezentate de intensitatea luminoasă. Fiecare transformare afină 3D se poate descrie (și se poate stoca) prin intermediul coeficienților transformării afine. După ce s-a parcurs întregul set de domenii în care a fost împărțită imaginea, în faza următoare se va crea pe disc un fișier al cărui format a fost denumit de inițiatori FIF – Fractal Image Format. Mai jos este descris algoritmul în limbaj pseudocod.

partiționează imaginea în domenii;

alege setul de regiuni de tip range care vor fi considerate în continuare;

alege clasa de transformări afine care vor fi utilizate în timpul căutării cele mai bune regiuni de tip range pentru un anumit domeniu;

inițializează pointerul să indice spre primul domeniu al imaginii;

repetă

compară datele din acest domeniu cu datele transformate din fiecare regiune de tip range folosind toate transformările afine;

dacă nu s-a ajuns la ultimul domeniu atunci

pointer = următorul domeniu;

până când se ajunge la ultimul domeniu;

scrie fișierul FIF pe disc;

Să vedem în continoare cum este structurat un astfel de fișier. În primul rând, se înscriu în fișier informații despre împărțirea imaginii în domenii, informații urmate de lista împachetată a coeficienților pentru fiecare regiune. În acest mod, atingem unul din dezideratele noului format: informația înscrisă în fișier este independentă de rezoluția imaginii originale sau, altfel spus am găsit o ecuație a imaginii. Pentru a înțelege mai bine cele spuse, ne vom raporta la început la o dreaptă. Ecuația matematică a dreptei este y=ax+b. Dacă vom cunoaște valorile coeficienților a și b vom putea desena linia la orice rezoluție. Acum este mai ușor de înțeles că dându-se coeficienții transformărilor afine în cadrul fișierului FIF, procesul de decomprimare poate crea o replică, de tip fractal, a originalului, la orice rezoluție.

Implementările algoritmului fac o serie de compromisuri în momentul în care aleg domeniile, regiunile de tip range și transformările afine. Ideea este că cu cât domeniile sunt mai mari cu atât numărul de transformări necesare este mai mic și implicit dimensiunea fișierului final este mai mică. În cazul în care nu este posibilă punerea în corespondență a unui domeniu cu transformata unei regiuni de tip range astfel încât să nu fie depășită marja de eroare admisă, calitatea imaginii decomprimate va fi mai slabă. Compresorul va încerca eficiența domeniilor de diferite dimensiuni și în mod corespunzător va găsi cele mai bune regiuni de tip range – acestea toate trebuie să se facă respectând norma de timp alocată optimizării. Implementarea realizată de firma Iterated Systems (firmă care deține patentul asupra algoritmului de lucru) permite , de exemplu, patru moduri de lucru cu ajutorul cărora se poate controla perioada de timp alocată pentru căutarea celei mai bune regiuni de tip range, aflată în corespondență cu un anumit domeniu. Realitatea demonstrează faptul că pentru a menține procesul de comprimare în limite rezonabile, este bine ca încă de la început să ne fixăm asupra unui set de regiuni de tip range (care să nu fie căutate în momentul derulării procesului) și asupra setului de transformări afine. În același timp, compresorul folosește o procedură matematică pentru determinarea setului optim de domenii în funcție de mărimea fișierului.

Decomprimare

Acest procedeu începe prin rezervarea spațiului de memorie necesar pentru două imagini (notate A și B) de dimensiuni egale. Mărimea acestor imagini poate fi mai mică sau mai mare decât a imaginii originale iar conținutul lor inițial este prea puțin important. Ne vom referi la imaginea A ca fiind imaginea conținând împărțirea pe regiuni de tip range respectiv ne vom referi la imaginea B ca fiind imaginea ce conține împărțirea pe domenii. Bineînțeles că imaginea B va fi partiționată în domenii așa precum este înscrisă în header-ul fișierului FIF.

Pentru fiecare domeniu din imaginea B se vor citi coeficienții transformărilor afine, se va localiza regiunea specificată de acești coeficienți în cadrul imaginii A și în final se va face o corespondență (altfel spus o mapare) a conținutului regiunii din A cu conținutul domeniului din imaginea B. Când acest proces este finalizat pentru fiecare domeniu, va fi creată o nouă imagine B prin transformările aplicate biților constituenți ai imaginii A.

Aceasta a fost prima iterație a procesului de decomprimare. În cadrul celei de-a doua iterații, rolul imaginilor A și B se schimbă astfel că imaginea B va conține împărțirea pe regiuni de tip range iar imaginea notată de noi cu A va fi partiționată pe domenii. Deci după două iterații, datele inițiale au fost puse în corespondență dinspre A spre B iar apoi dinspre B spre A. Acest proces se repetă până când diferențele dintre A și B devin insesizabile, urmând ca să se afișeze imaginea A. Algoritmul este descris mai jos în limbaj pseudocod :

citește informațiile din header-ul fișierului referitoare la împărțirea pe domenii;

despachetează lista coeficienților transformărilor afine;

rezervă spațiu în memorie pentru imaginea range cu informații arbitrare;

repetă

pointer = primul domeniu;

repetă

înlocuiește acest domeniu cu datele transformate ale regiunii de tip range folosind coeficienții transformării afine stocați pentru acest domeniu;

dacă nu este ultimul domeniu atunci

pointer = pointer următor;

până când se ajunge la ultimul domeniu

dacă diferența dintre range-domain > eroarea admisă atunci

copiază conținutul buffer-ului domain în zona buffer-ului range

până când diferențele dintre imaginea range și imaginea pe domenii sunt foarte mici

Acest proces relativ simplu recreează o imagine. Cât de bine va fi aproximată imaginea originală de către imaginea rezultată în urma procesului de decomprimare depinde de cât de bine a fost aleasă corespondența inițială între regiuni de tip range și domenii în timpul procesului de comprimare.

Sunetul – Numărul în creștere a utilizatorilor, scăderea prețurilor la componentele multimedia și aplicațiile multimedia de mare interes, fac din interfața de sunet o componentă standard. De aceea a crescut interesul pentru achiziția de sunet digital în cantități cât mai mari și la nivele de calitate sporite.

Pentru a reprezenta digital o undă sonoră va trebui să o cuantizăm folosind de exemplu un convertor analog-digital. În teoria prelucrării semnalelor audio, se specifică faptul că frecvența de eșantionare trebuie să fie de două ori mai mare decât cea mai mare frecvență întâlnită în timpul culegerii datelor. Practic în procesul de digitizare undele sonore sunt convertite în numere reprezentând de fapt volumul (amplitudinea sunetelor).

Urechea umană nu poate recunoaște sunetele după volum., ca urmare , înregistrarea amplitudinii semnalului se poate face prin rotunjirea valorii citite la cel mai apropiat întreg apropiat de un multiplu de 16. (reducerea la o valoare pe 4 biți) fără ca respectiv calitatea sunetului să aibă prea mult de suferit. Important este ca algoritmul de compresie să nu modifice răspunsul în frecvență. Am ajuns astfel la o rată de compresie de 2:1.

Aproape toți algoritmii de compresie folosiți la compresia datelor audio folosesc două tehnici de bază: silence coding și respectiv modulația delta (delta modulation). Dacă examinăm unda ce reprezintă vorbirea umană vom putea observa că există multe zone aproximativ plane între cuvintele vorbite. Silence coding reprezintă tocmai aceste pauze în variația amplitudinii semnalului pe un singur octet. Cât timp eșantioanele fluctuează cu o valoare mai mică decât un interval prestabilit, întreaga secțiune este considerată o pauză. Totuși în acest mod putem fi puși în situația de a pierde o serie de frecvențe foarte înalte ( de exemplu la pronunțarea literei s).

Cealaltă metodă de compresie delta modulation încearcă să găsească o metodă eficientă de înregistrare intervenite în fluxul de date. Prin modelarea schimbărilor intervenite de la un eșantion la următorul, vom putea menține răspunsul în frecvență al datelor de intrare cu o eroare aproape nulă. De fapt prin această modelare a schimbărilor intervenite în date, noi înregistrăm informații referitoare la prima derivată a undei sonore sau mai bine zis stocăm informații despre viteză. Orice eroare apărută la refacerea datelor inițiale (prin decomprimare) poate să dea naștere la o frecvență parazită. Delta modulation este un concept simplu. Să presupunem că avem valoarea 0 urmată de 115 . Diferența dintre cele două valori consecutive este 115. În loc să stocăm această valoare vom putea introduce numărul +7 luând în considerare un multiplicator în valoare de 16. După cum se poate observa +7*16=112, deci, nu am obținut chiar valoarea originală 115. Dar această mică diferență în înregistrarea variației amplitudinii este prea puțin importantă în raport cu faptul că am menținut răspunsul în frecvență. Deci am stocat o valoare (115) ce necesita 8 biți printr-un număr care se poate reprezenta pe 4 biți prin reprezentarea numerelor de la –8 la +8. Trebuie precizat deasemenea faptul că în cazul modulației delta avem sub control două variabile: rezoluția de înregistrare și multiplicatorul. Prin rezoluția de înregistrare înțelegem numărul de biți necesari pentru a reprezenta diferența (modulația delta) între două eșantioane consecutive. Cu cât utilizăm mai puțini biți în acest scop, cu atât rata de compresie va crește. Dacă folosim o rezoluție de 1 bit atunci vom acumula o rată de compresie de 8:1 dar pe de altă parte vom ajunge să folosim o modelare slabă a datelor. În fond va trebui să ajungem la un compromis între calitatea sunetelor și rata de compresie. Multiplicatorul este acea valoare care controlează mărimea modulației delta. În mod ideal, această constantă de multiplicare trebuie să permită o cât mai bună aproximare a valorii originale ce reprezintă diferența dintre două eșantioane consecutive. În cazul în care nici o rezoluție și nici un multiplicator nu modelează datele cu o acuratețe destul de mare, în raport cu necesitățile noastre. atunci vom stoca eșantionul în forma sa originală, acest lucru cauzând o resincronizare – practic calitatea sunetului nu va fi compromisă.

Reduceri modeste în ratele de biți audio au fost obținute prin conversia instantanee (ex. conversia a 11 biți PCM uniformi într-o reprezentare PCM neuniformă u-law A-law), variate forme de ajustări a semnalului (DSP, NICAM) diferențiale PCM adaptive folosite la CD-I.

Mai recent performanțe de codare bune sau exelente au fost obținute cu ajutorul coderelor cu domenii de frecvență:

codarea subbandă (SBC);

codarea de transformare adaptivă (ATC);

Diferențele dintre coderele propuse constau în :

numărul de componente spectrale ;

strategii de cuantificare ;

mascarea erorilor de codare rezultate ;

Coderele cu domenii de frecvență

Caracteristicile spectrale pe termen scurt al semnalului de sursă și proprietățile de mascare a sunetelor slabe de către cele puternice ale urechii sunt exploatate pentru a reduce rata de date transmisă. Coderele domeniilor de frecvență oferă o metodă directă pentru modelarea sunetului și suprimarea componentelor de frecvență care nu necesită să fie transmise. Spectrul de surse este împărțit în benzi de frecvență. Fiecare componentă de frecvență este cuantificată separat implicit fiind cuantificat și zgomotul asociat acelei benzi de frecvență. Numărul de biți folosiți pentru a coda fiecare componentă de frecvență variază. Componentele subiectiv mai importante sunt codificate pe mai mulți biți. Alocarea dinamică de biți este controlată de un “plic spectral” (spectral envelope) pe termen scurt a sursei de semnal. Informația referitoare la numărul de biți alocați trebuie să fie transmisă decoderului ca informație secundară.

O parte importantă în codarea domeniului de frecvență a semnalelor audio este apariția preecourilor. De exemplu o perioadă de liniște e urmată de un sunet care vibrează, efecte întâlnite la castaniete sau diapazon., în cadrul aceluiași bloc de codare ceea ce implică mari erori de cuantificare instantanee. Preecourile pot deveni auzibile distinctiv, în mod special la rate scăzute de biți cu erori comparativ mari. Preecourile pot fi mascate prin efectul de domeniu-timp al premascării, dacă timpul scurs este scurt. Astfel că preecourile sunt evitate folosind blocuri de lungime mică. Oricum dacă blocurile sunt prea mic, un procentaj semnificativ din rata totală de biți este necesar pentru transmiterea informațiilor secundare. O soluție la această problemă este să se interschimbe mărimile blocurilor cu lungime diferită.

1) Codarea subbandă

Codarea sub-bandă (SBC) este o metodă puternică generalizată pentru codarea eficientă a semnalelor audio. SBC poate coda eficient orice semnal audio de la orice sursă, făcându-l ideal pentru înregistrarea muzicii, coloana sonoră de film, și altele. MPEG audio este cel mai popular exemplu de SBC.

Principii de bază

SBC depinde de un fenomen a sistemului auditiv uman numit mascarea auditivă (masking). Urechea umană nu poate distinge sunetele slabe la frecvențe apropiate. Vom spune că frecvențele mai puternice maschează frecvențele mai slabe. Frecvențele mai puternice se numesc masker. Aici vom discuta despre mascarea simultană; există și fenomenul de mascare care nu este simultană, precum și alte fenomene ale auzului omenesc.

Ideea de bază la SBC este în a salva semnalul de bandă eliminând informațiile despre frecvențele mascate. Rezultatul nu va fi același ca semnalul original , dar dacă se face calculul corect, urechea umană nu va face diferența.

Codarea semnalelor audio

Cel mai simplu mod de a coda semnalul audio este PCM (Pulse Code Modulation), care este folosit la CD-urile de muzică, înregistrările DAT și altele. Ca toate digitizările, PCM adaugă zgomot la semnal, care nu este dorit în general. Cu cât mai puțini biți folosim cu atât este adăugat mai mult zgomot. Pentru ca acest zgomot să nu fie o problemă trebuiesc folosiți mai mulți biți astfel încât zgomotul să fie destul de slab pentru a fi mascat de semnal. Astfel se va obține un sunet de calitate (peste 700Kb/s pe canal). O mare parte din biți codează porțiuni din semnal, fiind pierduți.

Există mai multe moduri de a digitiza semnalul audio pentru a salva o parte din bandă. O metodă clasică este PCM nonliniar, ca și codarea mu-law (numită după curba perceptuală de audiție). Acesta este ca și PCM la scară logaritmică, efectul fiind adăugarea de zgomot proporțional cu puterea semnalului. Formatul .au de la Sun este un exemplu pentru codarea mu-law. Folosind 8 biți pentru codarea mu-law, canalul audio va fi tăiat la 350 Kb/s, ceea ce e mai bine, dar destul de mult, și adesea calitatea este mai slabă decât originalul.

Schema SBC de bază

Majoritatea encoderelor SBC folosesc o astfel de structură. La început, se face o mapare timp-frecvență (un banc de filtre, sau FFT) descopunând semnalul de input în subbenzi de frecvență. Modelul psihoacustic arată în aceste subbenzi la fel ca semnalul original, și determină pragul de mascare folosind informații de psihoacustică. Folosind aceste praguri de mascare, fiecare eșantion din subbandă este cuantificat și codat astfel încât zgomotul să fie sub pragul de mascare. Ultimul pas este de a asambla toate aceste eșantioane cuantificate în cadre, astfel încât decodorul poate face față fără a pierde informații.

Aceasta este o descriere sumară a modului cum funcționează SBC. Trebuie amintit câte calcule trebuie făcute pentru a se realiza acești pași. Pentru sistemele care trebuie să lucreze în timp real, unde calculele sunt principalele rezultate, acestea devin principala constrângere.

În ultimii cinci – zece ani, au fost dezvoltate sistemele bazate pe SBC de diferite companii și laboratoare din industria audio. După 1980, un corp de standardizare de la ISO numit Motion Picture Experts Group (MPEG) a dezvoltat un standard generic de codare pentru audio și video. MPEG – audio reprezintă deci un exemplu specific a unui sistem SBC practic.

MPEG-1 Audio: un sistem SBC practic

MPEG-1 este de fapt un grup de trei scheme SBC diferite, numite layers. Fiecare layer este un coder care conține propriul SBC cu propria mapare timp-frecvență, model psihoacustic și cuantificator. Layer 1 este cel mai simplu dar dă și cea mai mică rată de compresie. Layer 3 este cel mai complicat și greu de calculat dar dă cea mai bună compresie. Ideea este ca o aplicație MPEG-1 audio să folosească oricare layer care dă cel mai bun raport între calculul greoi și performanța de compresie. Semnalul audio poate fi codat în oricare layer iar un decoder MPEG standard pentru oricare din layere trebuie să fie capabil să îl decodeze.

MPEG –1 audio intenționează să ia locul semnalului audio PCM eșantionat la 32, 44.1 sau la 48 kHz, și să îl codeze la rate de la 32 la 192 kb/s pe canal audio (în funcție de layer.

MPEG – 1 audio layer 1

Maparea timp-frecvență din layer 1 este un banc de filtre polifazice cu 32 subbenzi. Filtrele polifazice combină complexitatea mică a calculelor cu flexibilitatea de design și opțiuni de implementare. Oricum, subbenzile sunt egale (spre deosebire de benzile critice).

Modelul psihoacustic de la layer 1 folosește 521 puncte FFT pentru a da informații de spectru despre semnal. Ieșirea de FFT este folosită găsi mascarea tonală (sinusoidală) sau nontonală (zgomot) a semnalului. Pentru fiecare subbandă, se combină pragurile de mascare individuale pentru a forma un prag de mascare global. Pragul de mascare este comparat cu nivelul maxim de semnal pentru subbandă, rezultând o rație semnal / mascare (SMR) care reprezintă intrare pentru cuantificator.

Cuantificatorul / coderul examinează mai întâi eșantioanele din fiecare subbandă, găsind valoarea maximă absolută pentru acestea, și le cuantifică pe 6 biți. Se numește factor de scală pentru subbandă. Apoi determină alocarea de biți pentru fiecare subbandă, minimizând rata totală zgomot / mascare . În final, eșantioanele din subbandă sunt cuantificate liniar.

Pachetul cadru din layer 1 este destul de simplu. Fiecare cadru începe cu o informație de header pentru sincronizare și control, și 16 biți pentru CRC de detecție și corecție. Fiecare din cele 32 subbenzi are 4 biți pentru descriere ți 6 biți pentru factorul de scală. Restul de biți sunt folosiți pentru eșantioanele din subbandă, cu un trailer opțional pentru informații în plus.

Layer 1 procesează semnalul de input în cadre de 384 eșantioane PCM. La 48kHz, fiecare cadru are 8 ms de sunet. Specificațiile MPEG nu impune o rată de codare, permițând implementări flexibile. Cea mai bună calitate este obținută cu o rată de 384k bps.

Aplicațiile tipice layer 1 includ înregistrări audio pe casete, harddisk, discuri magneto-optice, care pot avea rate de transfer de biți mari.

MPEG -1 audio layer 2

Maparea timp-frecvență la layer 2 este similară cu cea folosită la layer 1, generând o scală de factori de 6 biți pentru fiecare subbandă. În schimb , cadrele layer 2 sunt de 3 ori mai mari decât cele de la layer 1, astfel că layer 2 permite pentru fiecare subbandă o secvență de trei factori de scală succesivi, encoderul folosind unul, doi sau trei , în funcție de cât de mult diferă unul de altul. Aceasta dă, în medie, o reducere la jumătate în rata de biți pentru factorii de scală comparativ cu layer 1. Alocarea de biți este calculată similar cu cea de la layer 1.

Pachetul cadru (frame) folosește același header și structură CRC ca și la layer 1. Numărul de biți folosiți pentru a descrie alocarea datelor cariază după subbandă : 4 biți pentru subbenzile joase, 3 biți pentru cele medii și 2 biți pentru cele înalte (acestea urmăresc lățimea de bandă critică). Factorii de scală (unu , doi sau trei în funcție de date) sunt codate înainte pe 2 biți arătând ce combinație de factori de scală va fi folosită. Eșantioanele de subbandă sunt cuantificate în funcție de alocarea de biți și combinate într-un grup de trei ( numite granule). Fiecare granulă este codată pe un singur cuvânt. Aceasta permite ca layer 2 să preia mai mult semnal redundant decât layer 1.

Layer 2 procesează semnalul de intrare în 1152 eșantioane de PCM. La 48kHz, fiecare cadru are 24 ms de sunet. Cea mai bună calitate este obținută la o rată de 256k bps, dar și la 64k bps se aude destul de bine. Aplicații tipice care folosesc layer 2 sunt cele de difuziune audio, televiziune, înregistrări comerciale și profesioniste și multimedia.

Pe Web fișierele audio codate cu layer 2 sunt cu extensia .mpeg2 sau .mp2.

MPEG-1 audio layer 3

Layer 3 este substanțial mai complicat decât layer 2, și de aceea nu îl vom descrie în detaliu. Folosește bănci de filtre polifazice și transformarea discretă cosinus (DTC), un model de predicție psihoacustic polinomial, cuantificare sofisticată și scheme de codare care permit cadre cu lungimi variabile.

Layer 3 este destinat aplicațiilor care au nevoie de rate scăzute de biți ca urmare sistemele de codare vor fi scumpe si sofisticate. Acesta permite rezultate bune și la rate de 64 kbps. Aplicații tipice care folosesc astfel de standard sunt în telecomunicații, în domeniul audio profesional, precum și în muzica și video comercial.

Standardul MPEG-1 audio include mult mai multe facilități. Printre acestea mai putem aminti posibilitatea ca cele două canale (stereo) să fie codate separat sau ca joint stereo, care codează ambele canale stereo, reducând astfel mai mult spațiul ocupat.

2) Codarea de transformare adaptivă (ATC)

Un bloc de eșantionare de intrare este transformat liniar via o transformare discretă într-un set de coeficienți de transformare. Acești coeficienți sunt apoi cuantificați și transmiși în formă digitală la decodor. În decodor o transformare inversă mapează semnalul înapoi în domeniu timp. Transformări tipice sunt transformarea Fourier sau transformarea cosinus discretă (DCT) și de aici o serie de versiuni modificate. Transformările discrete pot fi vizualizate ca bănci filtru. Lungimea finită a răspunsurilor impulsurilor de trecere dintr-o bandă în alta de la nivelul acesta pot fi supranumite efecte “graniță de bloc”. Prin urmare coderele ATC produc un DCT modificat (MDCT) cu blocuri de analiză care se suprapun eliminând puternic aceste efecte. Aceste transformări au următoarele efecte :

implementează efectiv o bancă filtru bazată pe transformarea de eșantioane;

sunt independente de “efectele – graniță de bloc”;

au un câștig mai mare la codarea de transformare decât DCT;

funcții lor de bază corespund unor răspunsuri mai bune de transfer de bandă;

Codarea de transformare adaptivă câștigă semnificativ în performanță dacă numărul de biți asignați la fiecare coeficient de cuantificare a transformării este adaptat la un spectru mai mic de termeni.

În anii 70 Zelinski și Noll au introdus alocarea dinamică de biți și au demonstrat că au obținut rezultate semnificative cu codarea de transformare adaptivă (ATC). Ei au propus :

o mapare DCT și un algoritm de alocare dinamică care folosește coeficienții transformării DCT pentru a calcula termenii spectrali ai DTC

un domeniu de aproximare care este parametrizat, codat și folosit pentru a calcula numărul optim de biți pentru fiecare coeficient de transformare.

Ei au propus deasemenea o alocare de biți bazată pe percepția auditivă.

Codarea de înaltă calitate la rate de biți scăzute este utilizată deja în standardele MPEG-2 și MPEG-4. Ne putem aștepta la utilizări ale codării și în domeniul sistemelor digitale surround.

Video

Diferențele dintre imaginea video pe calculator și imaginea video analoagă au început treptat să se atenueze printr-o numerizare de calitate. Nu a fost nevoie decât de o componentă hardware specializată, o placă overlay de numerizare, pentru ca imaginile video de televiziune preluate sub formă analoagă să fie transformate în informații digitizate, apoi mixate cu informațiile digitale ale calculatorului și vizualizate pe monitorul acestuia. Datorită hardware-ului, imaginile video digitizate pot fi afișate full-screen, full-motion, full-color. Pentru a realiza o producție multimedia trebuie să înțelegem cele două tehnologii, în special pentru că procesele de transformare a unui tip de semnal în celălalt presupun performanțe deosebite ale calculatorului de procesare, algoritmi eficienți de comprimare și un spațiu de stocare considerabil.

Compresia imaginilor, ca și cea a sunetelor este posibilă datorită existenței unei redundanțe sau prin specularea unei repetabilități. Algoritmii de compresie asigură eliminarea acestor redundanțe, reținând numai informațiile absolut necesare pentru reconstituirea imaginii sau sunetului. Algoritmii de compresie video cunoscuți sunt : JPEG, MPEG, P*64, DVI, M-JPEG, ei bazându-se pe cele două tipuri de redundanțe și sunt disponibili pentru a comprima informația digitală cu rate cuprinse între 50:1 și 200:1

Dintre aceștia MPEG s-a impus ca normă oficială de compresie imaginilor video.

MPEG-4 este un standard ISO/IEC fiind dezvoltat de MPEG (Moving Pictures Experts Group), comitet care a dezvoltat standardele MPEG-1 și MPEG-2. Aceste standarde fac posibile video interactiv pe CD-ROM și televiziunea interactivă. MPEG-4 va fi rezultatul unui efort internațional care a implicat sute de cercetători și ingineri din toată lumea. MPEG-4, a cărui denumire formală ISO/IEC va fi ISO/IEC 14496, a fost lansat în noiembrie 1998 iar standardul internațional în ianuarie 1999.

MPEG-4 este construit pe trei domenii : televiziune digitală, aplicații grafice interactive (cu conținut sintetic) și World Wide Web (distribuție și accesul la conținut) și furnizează elementele tehnologice care permit integrarea producției, distribuției și accesului la conținut.

Standardul MPEG-4 va furniza un set de tehnologi pentru a satisface nevoile producătorilor, furnizorilor de servicii precum și utilizatorilor finali.

Pentru producători, MPEG-4 va permite o mult mai mare reutilizare a conținutului producției, cu o mai mare flexibilitate decât posibilitățile actuale. Dealtfel, va fi posibil o mai bună protecție a conținutului în ceea ce privește drepturile de autor.

Pentru furnizorii de servicii MPEG-4 va oferi o transparență a informațiilor care va fi interpretată și tradusă în mesaje proprii fiecărei rețele. În MPEG-4 sunt definiți parametri generici de Calitate a Serviciului (Quality of Services QoS), maparea exactă a acestora fiind lăsată la latitudinea furnizorilor de servicii de rețea. Semnalizarea informațiilor de Calitate a Serviciului , va permite optimizarea transportului în rețele eterogene.

Pentru utilizatorul final, MPEG-4 va introduce numeroase funcționalități, care vor putea fi accesate de pe un singur terminal la înalte nivele de interacțiune cu conținutul, între limitele stabilite de către autor.

MPEG-4 realizează aceste obiective furnizând căi de standardizare pentru :

reprezentarea unitară a acusticii, conținutului vizual și audiovizual, numite și “obiecte audio-vizuale” (audio-visual objects sau AVO). Unitatea de bază este mult mai precisă fiind numită primitivă AVO. Aceste AVO pot fi de origine naturală sau sintetică, după cum au fost înregistrate cu o cameră sau microfon, sau generate cu un calculator.

compunerea acestor obiecte creează obiecte audiovizuale compuse care formează scene audiovizuale.

multiplexarea și sincronizarea datelor asociate cu AVO , astfel încât ele să poată fi transportate prin canalele rețelei furnizând o Calitate a Serviciului corespunzătoare naturii specifice AVO.

interactivitatea cu scenele audiovizuale generate la receptor.

După cum se poate vedea în figura de mai jos, un flux din rețea (sau de la un dispozitiv de stocare) este demultiplexat și trimis ca fluxuri elementare (elementary streams). Aceste sunt analizate și pasate la decodoare. Decodoarele refac datele din reprezentarea lor codată în obiecte audio video (AVO), și realizează operațiile necesare pentru a reconstitui obiectele AVO originale gata pentru a fi interpretate pe următorul dispozitiv (Composition and rendering). Obiectele AVO decodate sunt folosite pentru a recompune scena descrisă de autor. Utilizatorul poate, cu permisiunea dată de autor, să interacționeze cu scena care este interpretată și prezentată.

Codarea obiectelor audio

MPEG-4 folosește pentru codarea obiectelor audio atât sunetele naturale (cum e vorbirea sau muzica) cât și sunetele sintetizate bazate pe descrierea structurii. Modul de reprezentare facilitează scalabilitate precum și redarea la diferite viteze. Reprezentarea sunetelor sintetizate se poate face folosind text care descriu instrumentele precum și parametri care dau efecte ca spațializare sau reverber.

MPEG –4 standardizează codarea audio naturală la rate cuprinse între 2Kbps și 64Kbps. Prezența standardului MPEG-2 AAC în uneltele MPEG-4 , furnizează o compresie generală în rate de biți superioare. Pentru ratele de 2Kbps până la 64Kbps, standardul MPEG-4 normalizează sintaxa fluxului de biți și a procesului de decodare în termenii unui set de unelte. Cea mai mică rată este cuprinsă între 2 – 4 Kbps pentru frecvențe de eșantionare de 8 kHz și 4 – 16 Kbps pentru eșantionări de la 8 la 16 kHz. Codarea vorbirii la rate medii între 6 – 24 Kbps folosesc Code Excited Linear Predictiv (CELP).Pentru rate sub 16 Kbps, se aplică tehnici de codare timp-frecvență, și anume TwinVQ și AAC.

Diagrama blocului general din MPEG-4 audio

Decodoarele sunt disponibile dealtfel și pentru generarea sunetelor bazate pe structuri de intrare. Textul de intrare este convertit în vorbire cu decodorul text-to-speech (TTS). Muzica sintetizată poate fi livrată la rate de biți scăzute dacă semnalul este descris exact.

TTS preia un text sau un text cu parametrii de prosodie ( tăria sunetelor, durata fonemelor, și altele) ca input generând vorbirea sintetică. Acesta include următoarele funcționalități :

sinteza vorbirii folosind elemente de prosodie din vorbirea originală;

controlul animației faciale cu ajutorul informațiilor din foneme;

posibilități de pauză, reluare, acces aleator înainte / înapoi;

suport pentru limbaj internațional;

suport pentru simboluri internaționale;

suport specific pentru vârstă, gen, limbă și dialect a vorbitorului;

Codarea obiectelor vizuale

Obiectele vizuale pot fi deasemeni de origine naturală sau sintetică.

Texturi naturale, imagini și video

Uneltele pentru reprezentarea de video natural în standardul vizual din MPEG-4 au ca scop standardizarea tehnologiilor ce permit o stocare eficientă, transmisie sau manipularea texturilor, imagini și date video pentru medii multimedia. Aceste unelte permit decodarea și reprezentarea de unități atomice din imagine sau video, numite “obiecte video” (video objects VO). Un exemplu de VO poate fi o persoană care vorbește (pe un anumit fundal) și care poate fi compusă cu alte obiecte AVO, pentru a crea o scenă. Parte vizuală din standardul MPEG-4 furnizează soluții sub formă de unelte și algoritmi pentru:

compresia eficientă a imaginii și video

compresia eficientă a texturilor mapate pe forme 2D sau 3D;

compresia eficientă implicită a formelor 2D;

compresia eficientă a geometriei care variază în timp animând formele;

accesul aleator la toate tipurile de obiecte vizuale;

funcționalități de manipulare extinse pentru imagini și secvențele video;

codarea conținutului de bază a imaginilor și video;

scalabilitatea texturilor din imagine și video;

calitatea scalabilității spațiale și temporale;

robustețe la erori și recuperarea din eroare în medii perturbate;

Obiecte sintetice

Obiecte sintetice formează un subset dintr-o clasă de obiecte grafice pe calculator, având ca scop respectarea următoarelor caracteristici:

Parametrizarea :

descrierii sintetice a feței și corpului uman;

fluxurile de animație a feței și corpului;

Codarea formelor statice și dinamice cu textura aferentă;

Codarea texturii din punct de vedere a aplicației;

3.5 Evaluări

Algoritmii folosiți în compresie au performanțe diferite, în funcție de tipul de date pe care este aplicat. Există câteva criterii de clasificare a algoritmilor, dintre acestea amintind:

După momentul în care se face compresia

algoritmi de compresie printr-o singură trecere (algoritmi dinamici) ; pe măsură ce se parcurge fișierul se face și compresia

algoritmi de compresie prin mai multe treceri (algoritmi statici) ; compresia se face în doi pași : la prima trecere se analizează alfabetul, frecvențele simbolurilor, se identifică subșiruri care se repetă apoi se face compresia propriu-zisă.

După diferențele între fișierul inițial și fișierul expandat

algoritmi perfecți , ce au ca rezultat fișiere care decompresate sunt identice cu cele originale

algoritmi cu pierdere nesemnificativă. Între fișierul decompresat și cel inițial sunt diferențe controlate și acceptate

După criteriul stabilității

algoritmi stabili, care indiferent de natura fișierului și lungimea lui oferă grade de compresie apropiate

algoritmi instabili, foarte performanți pentru anumite tipologii de fișiere, și cu grad compresie modest pentru celelalte cazuri.

Fișierele multimedia (necomprimate) au în lungimi mari sau foarte mari. Sunt considerate fișiere mari cele cu lungimi de 1-10 MB, fișiere foarte mari cu lungimi de zeci – sute de MB. Chiar după compresie putem avea fișiere foarte mari dar cu reduceri semnificative de lungime.

Evaluarea performanțelor algoritmilor le vom face pe tipologii de fișiere deoarece compresia multimedia presupune algoritmi specializați care pentru a obține rezultate bune, se aplică doar acelui tip de fișier.

3.6 Programe pentru implementare

Vom prezenta mai jos implementarea algoritmului Huffman adaptiv (compresie).

/*

Scop: Exemplu de codare Huffman a unui fisier sursa

*/

#include <stdio.h>

#include <memory.h>

#include <malloc.h>

#include <stdlib.h>

/* Coduri de eroare returnate */

#define NO_ERROR 0

#define BAD_FILE_NAME 1

#define BAD_ARGUMENT 2

#define BAD_MEM_ALLOC 3

#define FALSE 0

#define TRUE 1

/* Variabile globale */

FILE *source_file,*dest_file;

typedef struct s_tree { unsigned int byte;

/* Un bait care va fi codat ca unsigned integer pentru a permite valori peste 255 */

unsigned long int weight;

struct s_tree *left_ptr,

*right_ptr;

} t_tree,*p_tree;

#define BYTE_OF_TREE(ptr_tree) ((*(ptr_tree)).byte)

#define WEIGHT_OF_TREE(ptr_tree) ((*(ptr_tree)).weight)

#define LEFTPTR_OF_TREE(ptr_tree) ((*(ptr_tree)).left_ptr)

#define RIGHTPTR_OF_TREE(ptr_tree) ((*(ptr_tree)).right_ptr)

typedef struct { unsigned char bits[32];

unsigned int bits_nb;

} t_bin_val;

#define BITS_BIN_VAL(bin_val) ((bin_val).bits)

#define BITS_NB_BIN_VAL(bin_val) ((bin_val).bits_nb)

int stored_byte_status=FALSE;

int stored_byte_val;

/* Proceduri */

#define beginning_of_data() { (void)rewind(source_file); stored_byte_status=FALSE; }

#define end_of_data() (stored_byte_status?FALSE:!(stored_byte_status=((stored_byte_val=fgetc(source_file))!=EOF)))

#define read_byte() (stored_byte_status?stored_byte_status=FALSE,(unsigned char)stored_byte_val:(unsigned char)fgetc(source_file))

#define write_byte(byte) ((void)fputc((byte),dest_file))

unsigned char byte_nb_to_write=0,

val_to_write=0;

void write_bin_val(bin_val)

/* Parameteri returnati : none

Actiune: Scrie in output valoarea binara codata in 'bin_val'

Erori: O eroare input/output poate perturba executia programului

*/

t_bin_val bin_val;

{ unsigned char bit_indice,bin_pos;

char pos_byte;

for (bin_pos=(BITS_NB_BIN_VAL(bin_val)-1) & 7,pos_byte=(BITS_NB_BIN_VAL(bin_val)-1) >> 3,bit_indice=1;bit_indice<=BITS_NB_BIN_VAL(bin_val);bit_indice++)

{ /* Urmareste bitul curent ce trebuie scris*/

val_to_write = (val_to_write << 1)|((BITS_BIN_VAL(bin_val)[pos_byte] >> bin_pos) & 1);

/* Muta la urmatorul bit pentru scriere */

if (!bin_pos)

{ pos_byte–;

bin_pos=7;

}

else bin_pos–;

if (byte_nb_to_write==7)

/* Sunt deja 8 biti scrisi? */

{ write_byte(val_to_write);

byte_nb_to_write=0;

val_to_write=0;

}

else /* Nu, atunci urmatoarea scriere se va face in urmatorulbit */

byte_nb_to_write++;

}

}

void fill_encoding()

/* Parameteri returnati: None

Actiune: Umple ultimul bait ce trebuie scris in output cu valori zero

Erori: O eroare de input/output poate perturba executia programului

*/

{ if (byte_nb_to_write)

write_byte(val_to_write << (8-byte_nb_to_write));

}

void write_header(codes_table)

/* Parameteri returnati: None

Actiune: Scrie headerul

Erori: O eroare de input/output poate perturba executia programului

*/

t_bin_val codes_table[257];

{ register unsigned int i,j;

t_bin_val bin_val_to_0,

bin_val_to_1,

bin_val; /* este folosit pentru a trimite in mod binar via write_bin_val */

*BITS_BIN_VAL(bin_val_to_0)=0;

BITS_NB_BIN_VAL(bin_val_to_0)=1;

*BITS_BIN_VAL(bin_val_to_1)=1;

BITS_NB_BIN_VAL(bin_val_to_1)=1;

for (i=0,j=0;j<=255;j++)

if BITS_NB_BIN_VAL(codes_table[j])

i++;

/* Pentru acolo unde, i contine numarul de baiti a catorva aparitii nenule de codat */

/* Prima parte a headerului: Specifica baitii care apar in sursa de codat */

if (i<32)

{ /* Codarea baitilor cu un bloc de baiti */

write_bin_val(bin_val_to_0);

BITS_NB_BIN_VAL(bin_val)=5;

*BITS_BIN_VAL(bin_val)=(unsigned char)(i-1);

write_bin_val(bin_val);

BITS_NB_BIN_VAL(bin_val)=8;

for (j=0;j<=255;j++)

if BITS_NB_BIN_VAL(codes_table[j])

{ *BITS_BIN_VAL(bin_val)=(unsigned char)j;

write_bin_val(bin_val);

}

}

else { /* Codarea baitilor cu un bloc de biti */

write_bin_val(bin_val_to_1);

for (j=0;j<=255;j++)

if BITS_NB_BIN_VAL(codes_table[j])

write_bin_val(bin_val_to_1);

else write_bin_val(bin_val_to_0);

};

/* A doua parte a headerului: Specifica codarea de baiti (fictivi sau nu) care apar in sursa de codat */

for (i=0;i<=256;i++)

if (j=BITS_NB_BIN_VAL(codes_table[i]))

{ if (j<33)

{ write_bin_val(bin_val_to_0);

BITS_NB_BIN_VAL(bin_val)=5;

}

else { write_bin_val(bin_val_to_1);

BITS_NB_BIN_VAL(bin_val)=8;

}

*BITS_BIN_VAL(bin_val)=(unsigned char)(j-1);

write_bin_val(bin_val);

write_bin_val(codes_table[i]);

}

}

void suppress_tree(tree)

/* Parameteri returnati: None

Actiune: Suprima the memoria alocata pentru 'arbore'

Erori: Niciuna daca arborele a fost construit cu alocare dinamica

*/

p_tree tree;

{ if (tree!=NULL)

{ suppress_tree(LEFTPTR_OF_TREE(tree));

suppress_tree(RIGHTPTR_OF_TREE(tree));

free(tree);

}

}

int weight_tree_comp(tree1,tree2)

/* Parameteri returnati: Returneaza o stare de comaparatie

Actiune: Returneaza un intreg negativ, zero or pozitiv depinzand de marimea 'tree2' este mai mica decat, egala cu, sau mai mare ca marimea(ponderea) lui 'tree1'

Errors: None

*/

p_tree *tree1,*tree2;

{ return (WEIGHT_OF_TREE(*tree2) ^ WEIGHT_OF_TREE(*tree1))?((WEIGHT_OF_TREE(*tree2)<WEIGHT_OF_TREE(*tree1))?-1:1):0;

}

p_tree build_tree_encoding()

/* Parametri returnati: Returneaza un arbore de codare

Actiune: Genereaza un arbore Huffman de codare bazat pe datele din fluxul de compresie

Erori: Daca nu mai este memorie disponibila pentru alocari atunci genereaza o exceptie 'BAD_MEM_ALLOC'

*/

{ register unsigned int i;

p_tree occurrences_table[257],

ptr_fictive_tree;

/* Seteaza numarul de aparitie a baitilor la 0*/

for (i=0;i<=256;i++)

{ if ((occurrences_table[i]=(p_tree)malloc(sizeof(t_tree)))==NULL)

{ for (;i;i–)

free(occurrences_table[i-1]);

exit(BAD_MEM_ALLOC);

}

BYTE_OF_TREE(occurrences_table[i])=i;

WEIGHT_OF_TREE(occurrences_table[i])=0;

LEFTPTR_OF_TREE(occurrences_table[i])=NULL;

RIGHTPTR_OF_TREE(occurrences_table[i])=NULL;

}

/* Valideaza aparitiile din 'occurrences_table' cu privire la datele de comprimat */

if (!end_of_data())

{ while (!end_of_data())

{ i=read_byte();

WEIGHT_OF_TREE(occurrences_table[i])++;

}

WEIGHT_OF_TREE(occurrences_table[256])=1;

/* Sorteaza tabelul de aparitii depinzand de ponderea fiecarui caracter */

(void)qsort(occurrences_table,257,sizeof(p_tree),weight_tree_comp);

for (i=256;(i!=0)&&(!WEIGHT_OF_TREE(occurrences_table[i]));i–)

free(occurrences_table[i]);

i++;

while (i>0) /* Cauta de (i+1)/2 ori in tabela de aparitii pentru a lega nodurile la un arbore unic */

{ if ((ptr_fictive_tree=(p_tree)malloc(sizeof(t_tree)))==NULL)

{ for (i=0;i<=256;i++)

suppress_tree(occurrences_table[i]);

exit(BAD_MEM_ALLOC);

}

BYTE_OF_TREE(ptr_fictive_tree)=257;

WEIGHT_OF_TREE(ptr_fictive_tree)=WEIGHT_OF_TREE(occurrences_table[–i]);

LEFTPTR_OF_TREE(ptr_fictive_tree)=occurrences_table[i];

if (i)

{ i–;

WEIGHT_OF_TREE(ptr_fictive_tree) += WEIGHT_OF_TREE(occurrences_table[i]);

RIGHTPTR_OF_TREE(ptr_fictive_tree)=occurrences_table[i];

}

else RIGHTPTR_OF_TREE(ptr_fictive_tree)=NULL;

occurrences_table[i]=ptr_fictive_tree;

(void)qsort((char *)occurrences_table,i+1,sizeof(p_tree),weight_tree_comp);

if (i) /* Exista un alt nod in tabela da aparitii? */

i++; /* Da, atunci ai grija de nodul fictiv */

}

}

return (*occurrences_table);

}

void encode_codes_table(tree,codes_table,code_val)

/* Parameteri returnati: Valoarea din 'codes_table' poate a fost modificata

Actiune: Stocheaza arborele de codare ca un tabel binar de codare pentru a mari viteza de acces.

'val_code' da nodu curent al arborelui pentru codare

Erori: None

*/

p_tree tree;

t_bin_val codes_table[257],

*code_val;

{ register unsigned int i;

t_bin_val tmp_code_val;

if (BYTE_OF_TREE(tree)==257)

{ if (LEFTPTR_OF_TREE(tree)!=NULL)

/* Subarborele din stanga incepe cu un bit setat pe 1 */

{ tmp_code_val = *code_val;

for (i=31;i>0;i–)

BITS_BIN_VAL(*code_val)[i]=(BITS_BIN_VAL(*code_val)[i] << 1)|(BITS_BIN_VAL(*code_val)[i-1] >> 7);

*BITS_BIN_VAL(*code_val)=(*BITS_BIN_VAL(*code_val) << 1) | 1;

BITS_NB_BIN_VAL(*code_val)++;

encode_codes_table(LEFTPTR_OF_TREE(tree),codes_table,code_val);

*code_val = tmp_code_val;

};

if (RIGHTPTR_OF_TREE(tree)!=NULL)

/* Subarborele din dreapta incepe cu un bit setat pe 0 */

{ tmp_code_val = *code_val;

for (i=31;i>0;i–)

BITS_BIN_VAL(*code_val)[i]=(BITS_BIN_VAL(*code_val)[i] << 1)|(BITS_BIN_VAL(*code_val)[i-1] >> 7);

*BITS_BIN_VAL(*code_val) <<= 1;

BITS_NB_BIN_VAL(*code_val)++;

encode_codes_table(RIGHTPTR_OF_TREE(tree),codes_table,code_val);

*code_val = tmp_code_val;

};

}

else codes_table[BYTE_OF_TREE(tree)] = *code_val;

}

void create_codes_table(tree,codes_table)

/* Parameteri returnati: Valoarea din 'codes_table' va fi modificata

Actiune: Stocheaza arborele de codare ca o tabela binara de codare pentru a mari viteza de acces apeland encode_codes_table

Erori: None

*/

p_tree tree;

t_bin_val codes_table[257];

{ register unsigned int i;

t_bin_val code_val;

(void)memset((char *)&code_val,0,sizeof(code_val));

(void)memset((char *)codes_table,0,257*sizeof(*codes_table));

encode_codes_table(tree,codes_table,&code_val);

}

void huffmanencoding()

/* Parameteri returnati: None

Actiune: Comprima cu metoda Huffman toti baitii cititi de functia 'read_byte'

Erori: O eroare input/output poate perturba executia programului*/

{ p_tree tree;

t_bin_val encoding_table[257];

unsigned char byte_read;

if (!end_of_data())

{ tree=build_tree_encoding();

/* Crearea celui mai bun arbore adaptat */

create_codes_table(tree,encoding_table);

suppress_tree(tree);

/* Obtine codarea binara intr-o matrice pentru a mari viteza de acces */

write_header(encoding_table);

/* Scrie headerul */

beginning_of_data(); /* Compresia de data */

while (!end_of_data())

{ byte_read=read_byte();

write_bin_val(encoding_table[byte_read]);

}

write_bin_val(encoding_table[256]);

/* Codul de sfarsit a codarii */

fill_encoding();

/* Umple ultimul bait inainte de a inchide fisierul */

}

}

void help()

/* Parameteri returnati: None

Actiune: Afiseaza help-ul programului si ii opreste executia Erori: None

*/

{ printf("This utility enables you to compress a file by using Huffman method\n");

printf("as given in 'La Video et Les Imprimantes sur PC'\n");

printf("\nUse: codhuff source target\n");

printf("source: Name of the file to compress\n");

printf("target: Name of the compressed file\n");

}

int main(argc,argv)

/* Parameteri returnati: Returneaza un cod de eroare (0=None)

Actiune: Procedura principala

Erori: Detecteaza, si returneaza un cod de eroare, daca e cazul

*/

int argc;

char *argv[];

{ if (argc!=3)

{ help();

exit(BAD_ARGUMENT);

}

else if ((source_file=fopen(argv[1],"rb"))==NULL)

{ help();

exit(BAD_FILE_NAME);

}

else if ((dest_file=fopen(argv[2],"wb"))==NULL)

{ help();

exit(BAD_FILE_NAME);

}

else { huffmanencoding();

fclose(source_file);

fclose(dest_file);

}

printf("Execution of codhuff completed.\n");

return (NO_ERROR);

}

4. Aplicație multimedia

Aplicația (fig. 1)prezintă formatele de fișiere multimedia avute în vedere în capitolele 2 și 3, punând în evidență diferențele din punct de vedere cantitativ și calitativ dintre acestea. Aplicația este structurată pe patru capitole după modelul cărții, cuprinzând trei capitole (sunet, imagine și video) în care sunt prezentate , pe categorii de fișiere, formate de date multimedia uzuale și un capitol în care sunt făcute câteva transformări și / sau compresii pentru a reliefa practic concluziile din capitolul următor.

Primul capitol (fig. 2) se referă la datele multimedia de tip imagine. Acestea sunt prezentate în comparație : fișier necomprimat fișier comprimat. Imaginile provin din aceeași sursă (un fișier de tipul TIFF ,scanat la rezoluția de 200 dpi) după care au fost transformate folosind Adobe Photoshop , păstrând caracteristicile de dimensiune și culori. Pentru a putea observa mai bine diferențele între cele două tipuri de imagine, am folosit o funcție de zoom, care realizează o mărire a scalei de reprezentare de până 8:1. Funcția are trei trepte de reprezentare, este activă doar pe suprafața imaginii și se apeleză cu un click de mouse. Revenirea la imaginea inițială se face trecând prin aceleași trepte de vizualizare, folosind click dreapta de mouse , funcția fiind activă, ca și în cazul măririi doar pe suprafața imaginii. Pot fi vizualizate mai multe imagini, trecerea realizându-se cu butoanele de sub imagine.

Al doilea capitol (fig. 3) este o prezentare, în comparație, a două formate de fișiere de sunet : WAVE și Audio MPEG 1 Layer 3. Toate exemplele puse la dispoziție pentru audiție provin din aceeași sursă : track CD-audio de 2 min. . Formatul wave este prezentat în 12 forme, fiind combinații între rata de eșantionare (44100, 22050, 11025 și 8000 Hz) și mărimea eșantionului (16, 8 și 4 biți/eșantion). Se alege tipul de fișier ce se vrea audiat selectând din butoanele radio după care se face click pe butonul de Play . Fișierul este rulat cu ajutorul unei funcții specifice mediului Multimedia Toolbook, făcând apel la funcții MCI. Pentru fiecare fișier audiat, sunt afișate informații cu privire la format, numărul de canale rata de eșantionare, numărul de baiți/sec, numărul de biți/eșantion și lungimea fișierului.

Cel de-al doilea format, MP3, este prezentat în 6 forme. Acestea au fost obținute combinând rata de eșantionare (44100 și 22100 Hz) cu rata de biți (320, 128 și 64 kbps). Alegerea fișierului ce se vrea rulat se face selectând din butoanele radio tipul dorit după care se apasă butonul de Play. Ca și în cazul fișierelor wave, și aici sunt prezentate informații despre fișierul în audiție. Fișierul este audiat cu un player specializat : WinAmp v2.09 al firmei NullSoft.

Al treilea capitol (fig. 4) este cu prezentarea a câtorva formate de fișiere video (avi, video mpeg și mov). Acestea sunt vizionate făcând click pe filmul dorit. Totodată pot fi văzute informații despre fiecare tip de fișier dacă aducem cursorul de mouse deasupra filmului.

În al patrulea capitol (fig. 5) se realizează un exemplu de compresie de fișier de sunet. Pentru a obține fișierul destinație e alege un fișier sursa, se optează pentru caracteristicile fișierului destinație (rata de eșantionare și rata de biți) după care se trece efectiv la compresie făcând click pe butonul “Compresie !”.

Aplicația a fost realizată, datorită caracterului puternic orientat spre multimedia, cu ajutorul produsului program Multimedia Toolbook 4.0 produs de firma Asimetrix. Acesta este un sistem orientat obiect pe programare vizuală. Produsul lucrează sub Windows și utilizează practic toate tipurile de resurse specifice acestuia. Recurge frecvent la biblioteci cu legare dinamică (Dynamic Linked Library) proprii sau aparținând sistemului Windows, care conțin funcții pentru crearea, manipulare și prezentarea aplicațiilor multimedia. Elementele de multimedia sunt gestionate ca obiecte, iar acțiunile sunt asociate unor mesaje. O aplicație multimedia are ca principale obiecte următoarele :

book – cartea în ansamblul ei

background – fundal, comun mai multor pagini

page – pagina

buttons – butoane, de o mare varietate

graphics objects – obiecte grafice

hotwords – cuvinte active

clip – referință a unei resurse multimedia de tip sunet, imagine statică sau secvență audio

stage – scenă pe care se derulează clipurile

viewers – ferestre, dintre care una este fereastra principală a aplicației, iar celelalte sunt derivate, vizibile temporar, specifice unor pagini sau unor elemente aparținând altei cărți

Multimedia ToolBook dispune de un limbaj de programare de tip script, numit OpenScript. Denumirea provine de la faptul că el descrie scenariul (script în engleză) după care se comportă aplicația în interacțiunea cu utilizatorul. Operațiile de creare de obiecte, selectarea lor, redimensionări, deplasări, modificarea unor proprietăți, generarea și direcționarea mesajelor , tratarea unor mesaje, pot fi realizate vizual, foloind instrumentele furnizate de Multimedia Toolbook, dar și cu instrucțiuni de limbaj. Utilitatea limbajului de programare în cadrul soft-ului pentru multimedia este foarte mare. Crearea obiectelor grafice și poziționarea lor se face în general vizual în timp ce prelucrarea de date , afișarea rezultatelor într-o formă grafică sugestivă, se realizează mult mai ușor pe baza unui algoritm descris foarte comod în termenii limbajului de programare.

fig. 2 Prezentarea imaginilor necomprimate comparativ cu cele comprimate

fig. 5 Compresie fișier de sunet (wave –> mp3)

5. Evaluări ale performanței procesului de compresie/decompresie

5.1 Compresia audio

Vom avea ca sursă un fișier de tip wave necomprimat cu următoarele caracteristici:

Lungimea fișierului : 21168170 baiți

Durată : 120 Sec

Mărimea formatului : 16 biți

Format: PCM

Canale : 2

Rata de eșantionare : 44100 Hz

Baiți / Sec: 176400

După transformare s-au obținut următoarele lungimi de fișiere :

Se observă o reducere a lungimii fișierului proporțională cu rata de eșantionare și numărul de biți / eșantion folosiți. La audiție în schimb se observă reducerea calității mai mult după scăderea ratei de eșantionare decât după numărul de biți / eșantion.

Compresia fișierului wave cu algoritm mpeg1 layer 3 a dat următoarele rezultate :

Se observă o reducere a lungimii fișierului cu rate ce variază între 1: 4.4 și 1:22, cu observația ca de la rate de peste 1:11 pierderea de calitate începe să fie percepută.

În tabelul de mai jos sunt prezentate date care urmăresc crearea de fișiere audio comprimate (mpeg 1 layer 3 la 44100 Hz la o rată de biți de 128Kbiți/s) pornind de la track-uri de pe CD Audio:

Timpul mediu pentru producția unui fișier mp3 de calitate bună (diferența de calitate nu poate fi percepută decât de specialiști în domeniu) este în medie de 1.84 sec sunt copiate și comprimate într-o secundă. Dacă luăm doar timpul de compresie în considerare atunci timpul necesar compresiei unei secunde de sunet de calitatea Cd-ului (44,1 kHz, 16 biți, stereo) în fișier mp3 la 44,1 kHz , 128 Kbps stereo, este de 0.29 sec. După cum se observă din date , nu contează mărimea fișierului, timpul de compresie fiind proporțional cu aceasta. Spectaculos este faptul că ceea ce abia puteai stoca pe 35 de dischete acum poți să ai pe 4 dischete.

La calculul mediilor de timp au fost folosite următoarele formule

Operația de grab de pe CD-ul audio s-a făcut cu utilitarul Audiocatalist v1.5 Copyright 1998 iar compresia a fost făcută cu utilitarul TOMPG MPEG Layer I/II/III audio encoder v3.0/32 Copyright 1995-97 ambele ale firmei Xing Technology Corp.

5.2 Compresia de imagine

Achiziția de imagine se poate face cu scanerul sau camera foto. În unele cazuri aceste dispozitive au procesoare specializate care fac compresie în timp real, pentru a putea stoca mai multe date pe același suport de memorie. În restul cazurilor compresia se face după ce imaginea a fost digitizată. Imaginile comprimate pot fi de tip rastru sau vectoriale.

Alegerea unui format în care se va păstra imaginea este făcută în funcție de utilizarea ei în viitor. Spre exemplu dacă se dorește ca imaginea să fie tipărită la imprimantă atunci trebuie avut în vedere ca imaginea să aibă o rezoluție de cel puțin 200 dpi în funcție de performanța imprimantei, patru canale de control a culorii (CMYK) fapt ce conduce la o creștere cu 38% a lungimii fișierului inițial.

Mai jos vom prezenta câteva formate uzuale de fișiere obținute dintr-o imagine TIFF scanată de dimensiune 2244 x 1514 , 24 biți / pixel , RGB, rezoluție 200 dpi având 9,72 MB.

Din datele de mai sus se observă o varietate mare formate, unele având dezavantajul lungimii foarte mari a fișierului dar cu timp de încărcare mic.

Dacă facem o corelație între mărimea fișierului, timpul de transformare și timpul de încărcare vom obține rezultate de mai jos. Pentru sintetizarea datelor am folosit formula de calcul:

unde

Rezultatele obținute ne indică formatul JPG ca fiind cel mai indicat pentru a stoca datele de tip imagine. Mărimea fișierului, timpul de transformare si cel de încărcare nu pot fi singurele criterii care să ne conducă la alegerea unui format. În cazul nostru primele două formate au obținut punctaje mai bune (diferențiindu-se net de celelalte) deoarece JPG folosește un algoritm de compresie cu pierdere mare de informație dar care nu este vizibilă decât ochiului mai sensibil iar GIF folosește 256 de culori pentru a stoca imaginea spre deosebire de celelalte care folosesc 16,7 milioane (posibile) culori.

Transformările au fost făcute cu Adobe Photoshop v. 4.0.1 iar vizualizarea cu ACDSee v.221.

5.3 Compresie video

În cazul achiziției și producției video, resursele hard și soft folosite sunt mult mai sofisticate, nefiind accesibile oricărui utilizator. Și în cazul video, achiziția de date poate avea ca rezultat direct un fișier comprimat, caz în care avem de-a face cu plăci video care au incluse un chip specializat care realizează compresia în timp real. Dacă se face doar digitizarea, atunci la ieșire vom obține un fișier necomprimat de dimensiuni foarte mari (caz în care trebuie să dispunem de medii de stocare foarte mari). Urmează compresia, făcută cu diferite “motoare de codare” care folosesc diferiți algoritmi specializați pentru această operație (DCT, wavelet, Vector Quantization, algoritmi bazați pe fractali).

Standarde în compresia video, care sunt mai des întâlnite în codec-uri, au fost emise de grupul “MPEG”. Acestea combină compresia video si cea audio, permițând o plajă largă de caracteristici a filmului obținut.

Indiferent de standardul de compresie folosit, mărimea fișierului final va depinde de numărul de cadre pe secundă codate, numărul de biți pe pixel folosiți pentru imagine, precum și calitatea sunetului.

Pentru exemplificare am luat câteva fișiere AVI care vor fi comprimate cu standardul MPEG1. Fișierele AVI au următoarele caracteristici :

Din date se observă creșterea rapidă a lungimii fișierului o dată cu mărirea dimensiunii sau a ratei de cadre pe secundă. Astfel dacă pentru F3 sunt folosiți 63.14 KB/sec (în care se include și sunet) în F5 se folosesc 1387.52 KB/sec ceea ce înseamnă de 22 ori mai mulți baiți folosiți pentru a avea o imagine de 4 ori mai mare.

După compresie cu algoritmul MPEG1-Video am obținut următoarele rezultate:

Compresia este cel mai bine vizibilă în cazul lui F5 deoarece sursa AVI este la aceeași rată (30 FPS) de cadre pe secundă, putându-se să se facă mai ușor comparația : rezultă o rație de 1:9.

Se observă că în medie o secundă de video este comprimat într-un minut fapt ce demonstrează că o compresie este cronofagă. În plus pentru a rula secvența video AVI procesorul este ocupat la 15% din capacitatea sa în timp ce pentru Mpeg procesorul este folosit la 60% din capacitatea sa.

Aceste date ne demonstrează încă o dată că prin compresie putem să reducem spațiul ocupat, renunțând însă la calitate și folosind mai mult resursele hard (procesorul în special).

Transformările au fost realizate cu utilitarul avi2mpg1 scris de John Schlichther.

GLOSAR

4:1:1 Raport frecventa de esantionare folosit pentru digitizarea intensitatii luminoase si a diferitelor culori ale unei componente video. La fiecare 4 mostre de intensitate luminoase exista una de crominanta. Intensitatea luminoasa e esantionata la 13.5 MHz iar diferenta culorilor (R-Y, B-Y) la fiecare 3.37 MHz. Aceasta da largimea benzii de crominanta mai mica fata de intensitatea luminoasa in comparatie cu esnationarea 4:2:2.

4:2:0 Raport frecventa de esantionare in care intensitatea luminoasa e esantionata. Astfel, o linie e esantionata la 4:0:0 (numai intensitatea luminoasa) si alta la 4:2:2.

4:2:2 Standard video digital in care intensitatea luminoasa e esantionata de 720 ori pe linie, iar cele doua canale de crominanta (R-Y si B-Y) sunt esantionate de 360 ori pe linie. Intensitatea luminoasa e esantionata la 13.5 MHz si diferenta de culoare (R-Y, B-Y) fiecare la 6.75 MHz. In CCIR 601 esantionarea 4:2:2 e un standard pentru echipamente digitale de studio. Frecventa de esantionare se dovedeste a fi admisibila la o largime posibila de banda a culorii de 3.37 MHz, indeajuns pentru calitatea chroma keying.

4:2:2:4 Este la fel cu 4:2:2 dar cu semnalul de ton inclus ca a patra componenta, de asemenea esantionat la 13.5 MHz.

4:4:4 Unul dintre raporturile de esantionare frecvente in care exista intotdeauna un numar de esantionari egal pe toate componentele.

4:4:4:4 Este la fel cu 4:4:4 dar cu semnalul de ton inclus ca a patra componenta.

8-BIT Nivel de cuantificare tipic pentru video standard digital. Fiecare bit cuantificat rezulta in 26 nivele de gri pe scara video.

10-BIT Nivel de cuantificare din care rezulta 1024 nivele de gri pe scara video.

A/D sau ADC (Conversie Analog-Digitala). Mai este referita ca digitizare sau cuantificare. Conversia semnalului analog in date digitale – normale pentru urmatoarea folosire in calculator. Pentru TV, sunt luate mostre audio si video, acuratetea procesului depinzand de frecventele de esantionare si de rezolutia amplitudinii informatiei analogice -care ne da numarul de biti utilizati pentru descrierea nivelelor analogice. Pentru imagini TV se folosesc 8 sau 10 biti, iar pentru sunet 16 sau 20 biti.

ADDRESS (ADRESA) Locul unde poate fi gasita o informatie in memorie. Pot surveni conflicte cand doua dispozitive doresc accesul la aceeasi adresa.

ALIASING Infatisare in forma de scara pentru unghiuri, linii inclinate si alte imagini afisate pe ecran.

ALPHA Termen in grafica pe computer ce se refera la gradul de opacitate al unei imagini cand are loc suprapunerea.

ANTI-ALIASING Indepartarea aliajelor inerente prin tehnici de filtrare digitale.

ARCHIVE (ARHIVA) Termen privind depozitarea informatiei. Imaginile sau sunetul in forma digitala pot fi arhivate si recuperate fara pierderi si distorsiuni. Componentele digitale video necomprimate: D1 sau D5 ofera stocare video si audio de calitate. Formatele cu componente digitale comprimate sunt foarte folositoare pentru arhivare.

ARTEFACT Efecte vizuale particulare care apar ca rezultat al unor limitari tehnice. Ele nu sunt descrise in general prin metode traditionale de evaluare semnal.

ASYMMETRIC COMPRESSION (COMPRESIE ASIMETRICA) Sistem de compresie ce necesita mai multe resurse (timp, efort de calcul) la comprimare decat la decomprimarea unei imagini sau informatii. Este folosit de obicei pentru distributia in masa a programelor pe media precum CD-ROM, unde pot apare cheltuieli semnificative pentru productie si compresia programului, dar sistemul de redare trebuie sa fie ieftin.

AVI (AUDIO VIDEO INTERLEAVE) A fost adoptat de Microsoft ca o parte a sistemului Video pentru Windows. Permite stocarea sunetului si imaginii intr-un fisier, facand sincronizarea sunetului mai corecta.

BANDWIDTH sau BIT RATE Largimea de banda sau rata de biti defineste cantitatea de informatie cu care se poate lucra in timpul dat. Este necesara pentru a arata claritatea unei imagini, fiind un factor de calitate a inregistrarii sau a imaginii transmise. CCIR 601 si SMPTE RP 125 permit o largime de banda pentru intensitatea luminoasa analogica de 5.5 MHz si pentru crominanta de 2.75 MHz, cea mai inalta calitate atinsa in formatul standard de emisiune. Sistemele de imagine digitala necesita in general largimi de banda mari.

BASE MEMORY (MEMORIE DE BAZA) Reprezinta primul MB din memorie.

BINARY (BINAR) Reprezentare matematica cu numere din baza 2, avand numai doua stari, 1 sau 0, ON sau OFF, HIGH sau LOW. Este baza matematica folosita in sistemele digitale. Reprezentarea binara necesita un numar mai mare de digiti decat in baza 10 in care reprezentam de obicei. De exemplu, reprezentarea in binar a numarului in baza 10 254 se scrie 11111110. Fiecare digit binar este cunoscut sub numele de bit.

BIOS (BASIC INPUT OUTPUT SYSTEM) Controleaza functionarea sistemului de calcul la cel mai jos nivel. De obicei in ROM.

BIT 1 digit binar=1 bit. Un bit matematic poate defini doua nivele sau stari on/off, negru/alb. Doi biti pot defini patru nivele, trei biti opt, etc. In termeni de imagine, opt biti pot defini 256 nuante de gri intre alb si negru.

BUFFER Memoria calculatorului folosita pentru a permite comunicatii eficiente intre componente cu viteze diferite (precum calculatorul si imprimanta).

BUG Eroare intr-un program pe calculator ce face sistemul sa functioneze gresit, sa se comporte ciudat sau sa se opreasca.

BYTE (KBYTE, MBYTE, GBYTE) 1 byte = 8 biti = 256 valori discrete ale luminozitate sau culoare, etc. 1 Kilobyte = 1,024 byte. 1 Megabyte = 1048,576 byte. 1 Gigabyte = 1,073,741,824 byte. In mod curent, pe harddisk-ul computerului se pot depozita de la 20 Mbyte la 9 Gbyte.

CACHE MEMORY (MEMORIE CACHE) Memoria cea mai rapida a computerului. Este folosita pentru stocarea sectiunilor de program la care se cere accesul cel mai des. Acestea vor rula mai repede si viteza programului se va mari.

CCD (CHARGE COUPLED DEVICE) tablou liniar sau bidimensional de elemente sensibile de lumina. Lumina e convertita la o sarcina electrica proportionala cu intensitatea, influentand fiecare celula. Celulele sunt cuplate la un sistem de scanare care, dupa conversia din analog in digital, prezinta imaginea ca o serie de digiti binari. In prezent, tablourile CCD sunt capabile sa reproduca o gama larga de lumina si sa ofere imagini de rezolutie inalta cu zgomot mic. In afara de emisiunile TV, CCD-urile fara defecte bidimensionale sunt utilizate acum pentru HDTV.

CCIR 601 Standard video digital folosind intensitatea luminoasa si doua semnale de diferite culori. Intensitatea luminoasa e esantionata la 15.3 MHz sau 720 timpi pe linie orizontala iar crominanta la jumatate din rata, digitizand pe 8 sau 10 biti.

CHROMA KEYING Procesul de acoperire a unui semnal video cu altul, aria de acoperire fiind definita printr-un set specific de culori, sau crominanta, pe unul din semnale. Pentru fiabilitate crominanta trebuie sa aiba suficienta rezolutie sau largime de banda. Codurile si unele sisteme video digitale (greu de comprimat) trebuie sa aiba o largime de banda croma restrictiva si nu sunt potrivite pentru "chroma key" de calitate inalta.

CROMINANTA Informatia de culoare dintr-un semnal video, incluzand nuanta si saturatia, dar nu si luminozitatea.

CLOCK SPEED CPU (VITEZA CEASULUI CPU) Viteza masurata in MHz a ceasului personal. Cel mai rapid ceas determina cel mai rapid procesor.

CMYK (CYAN, MAGENTA, YELLOW, BLACK) Albastru, mov si galben sunt 3 culori fundamentale din familia de culori. Ele produc un spectru de culori ilustrat in imagini artistice tiparite pe hartie.

COLOUR DEPTH (ADÂNCIMEA CULORII) Numar de biti folosit pentru a reprezenta pixeli individuali de culoare. Formatul comun include 8 biti (256 culori), 16 biti (64k culori) si 24 biti (16 milioane sau altfel spus True Color).

COLOUR PALETTE (PALETA DE CULORI) Numarul total de culori pe care un sistem le poate genera, desi se pot afisa simultan un numar mult mai mic. De exemplu, se pot afisa simultan 256 culori dintr-o paleta de 64K culori. Aceasta duce la schimbarea temporara a culorii daca se afiseaza pe ecran mai mult de o imagine.

COMPONENT VIDEO (COMPONENTA VIDEO) Tehnica de inregistrare video in care crominanta si intensitatea luminoasa sunt procesate si manipulate ca semnale separate (sau componente).

COMPOSITE VIDEO (COMPUS VIDEO) Semnal video standard ce combina crominanta si informatia luminoasa intr-un singur semnal combinat pentru a produce imaginea. Procesul, care este o forma anlogica de compresie video, restrictioneaza largimile de banda ale componentelor (detaliile de imagine).

COMPOSITING Multistratificare simultana pentru desen si imagini in miscare. Recent se folosesc adesea mai multe tehnici deodata, precum pictare, efecte digitale, corectia culorii, rotoscoping, keying/matting precum si stratificare pentru a crea animatii complexe si optice, secvente de titluri si comerciale. Pe langa elemetul creativ, exista alte aplicatii importante pentru echipamente compuse precum repararea imaginii, pictarea pe sticla, indepartarea firelor – in special pentru imaginile in miscare.

COMPRESSION RATIO (RAPORTUL DE COMPRESIE) Raportul de spatiu dintre semnalul video necomprimat si versiunea comprimata. Raportul de compresie nu este singura metoda de evaluare a calitatii unui semnal comprimat. Pentru o tehnica data, la o compresie mai mare ne putem astepta la rezultate de o calitate mai proasta, dar tehnici diferite dau rezultate de o calitate in mare masura diferita pentru acelasi raport de compresie. In acelasi timp, rezultatele depind de continutul imaginii.

COMPRESSION (COMPRESIE) Tehnica de reducere a cantitatii de date necesare pentru a reprezenta un semnal video sau audio. Standardele internationale pentru compresia imaginii video sunt MPEG si JPEG.

CONVENTIONAL MEMORY (MEMORIE CONVENTIONALA) Cei 640K de memorie disponibili pentru a rula programele pe PC standard.

CPU (UNITATEA CENTRALÃ DE PRELUCRARE) Cip-ul numit microprocesor reprezinta inima calculatorului.

D-1 Format videotape digital pentru inregistrarea video cu CCIR 601. Sistemul e creat sa obtina calitate inalta la inregistrare video. Noile formate de componente digitale includ D5, Digital Betacam, DVCPro, Digital-S, etc.

D/A sau DAC (Convertor digital-analogic) Dispozitiv pentru transformarea datelor digitale in semnal analogic. Fiecare numar de intrare digital, sau cuvant, este convertit in nivel de raspuns analogic.

D16 Format de inregistrare pentru filme digitale folosindu-se de standardul D1/CCIR 601. Schema a fost dezvoltata de Quantel pentru a ajuta la imaginile DOMINO si pentru a le inregistra dupa spatiul de 625 imagini pe care le ocupa. In acest fel pot fi inregistrate 3 cadre de film la fiecare 3 secunde. Realizarea unui play permite vederea imaginilor filmului pe monitor standard, rularea la o viteza de 16 ori mai mare si full motion direct de pe banda.

DATA TRANSFER RATE (RATA DE TRANSFER DATE) Viteza cu care datele pot fi citite sau scrise pe disc.

DCT (Discrete Cosine Transform) O metoda larg folosita de compresie a datelor din imaginile video digitale bazandu-se pe dizolvarea blocurilor de imagine (8*8 pixeli) in frecvente, amplitudini si culori. JPEG este bazat pe DCT.

DECIBEL (dB) Unitate de masura a raportului folosind scara logaritmica pentru a da rezultatele relatate sau percepute de om. Multe nivele sunt mentionate in dB- de exemplu raportul semnal zgomot (S/N).

DESKTOP VIDEO Aplicarea caculatoarelor personale la editare video si postproductie.

DIGITAL CHROMA KEYING Difera de echivalentul analogic prin faptul ca poate utiliza oricare din cele 16 milioane de culori reprezentate in domeniul digital. Se prefera culorile relativ potolite, mai degraba decat culori inalt saturate care pot cauza probleme de rasturnari de culori in primplan.

DIGITAL DISK RECORDER Sisteme ce pot inregistra video digital. Sunt bazate de obicei pe disk si ofera o durata scurta, in jur de un minut si ceva, de timp de inregistrare (de video CCIR 601). Aplicatia e asemanatoare unui cache video pentru a furniza surse video extra digitale si mai ieftina decat DTVR. Desi au avantajul ca nu necesita pre-roll sau rol film, in operatie nu exista neaparat acces aleator adevarat.

DIGITAL MIXING Pentru mixajul digital e necesara operatia de "scaling" a fiecarui semnal digital si apoi mixajul lor. Cand doua numere pe 8 biti sunt multiplicate impreuna rezultatul e un numar pe 16 biti. La mixaj e important sa adunam doua numere pe 16 biti pentru a obtine un rezultat corect. Acesta poate fi trunchiat sau rotunjit la 8 biti pentru transmisia din alte parti ale sistemului digital.

DIGITAL TRANSMISSION (TRANSMISIA DIGITALÃ) In viitor transmisiile TV vor aduce imagini si sunete digitale in casele noastre. Folosind compresia digitala mai multe canale TV pot fi transmise in largimea de banda a unui singur canal analogic, permitand sa fie receptate mai multe canale – cu o calitate mai mare a imaginii si sunetului.

DIGITISER Dispozitiv de convertire a intrarii analogice in reprezentare digitala. Exemple: ADC, mouse. Ultimul este un sistem care transfera deplasarea spatiala si o reprezinta in computer in format digital.

DITHERING Amestecarea unor puncte de diferite culori pentru a produce o aparenta de noua culoare. In termeni video digitali, este procesul de cuantificare aditionala.

DRAM (Dynamic Random Acces Memory) Cip de memorie cu densitate mare. Este atat de important incat japoneziii l-au numit "orezul electronicii". Memoria DRAM este folosita nu numai in computere ci si la construirea depozitelor de cadre si animatie. Este o parte de sine statatoare care ofera metoda cea mai des folosita de accesare si stocare date. Fiecare bit e stocat pe un singur tranzistor, iar chipul trebuie sa fie alimentat pentru a retine datele. Dimensiunile standard folosite sunt de 4 sau 16 Mbiti (pe cip) cu 64 Mbiti devenit de curand disponibil comercial.

DVE (Digital Video Effects) Efectele digitale video au fost furnizate in general ca masini separate, dar recent sunt incluse ca parti integrate ale sistemelor. Lista de efecte va include intotdeauna manipulari de imagini precum zoom, pozitionari, rotatii, perspective 3D, intoarceri de pagini, indoiri de imagini, mozaicuri, etc.

DVTR (Digital Video Tape Recorder) Primul DVTR pentru uz comercial a aparut in 1986 lucrand cu componenta digitala standard CCIR 601 si cu standardul asociat D1 pentru DVTR. Foloseste caseta de 19 mm inregistrand 34,78 sau 94 minute. Astazi sunt disponibile multe DVTR.

DYNAMIC RANGE (DOMENIU DINAMIC) Gama valorilor disponibile in semnal. La sursa de semnal domeniul dinamic e limitat de raportul dintre semnalul maxim si zgomotul nedorit. Din punct de vedere a ceea ce se vede pe ecran este domeniul cuprins intre luminozitatea minima si cea maxima. In general, un sistem digital pe 8 biti este satisfacator pentru majoritatea surselor si a conditiilor de vizionare.

EDL (EDIT DECISION LIST) (Lista deciziilor de editare) Lista de instructiuni ce cuprinde deciziile de editare ale proiectului.

ERROR DETECTION AND CORRECTION (CORECTAREA SI DETECTIA ERORILOR) Inregistrarea digitala nu este perfecta. Atat banda cat si discul magnetic au o arie marginala de inregistrare unde inregistrarea si redarea sunt dificile sau imposibile. Oricum, erorile pot fi detectate si se pot face actiuni de remediere prin ascundere si corectie. VTR-urile digitale monitorizeaza rata de erori si furnizeaza avertismente in privinta erorilor de depasire care, desi nu sunt vizibile imediat, pot aparea prin treceri multiple.

FILTERING (FILTRAREA) Proces folosit atat in procesarea imaginii digitale cat si a celei analogice pentru reducerea largimii de banda. Filtrele pot fi folosite la indepartarea frecventelor inalte precum si a frecventelor joase.

FRAME (CADRU) In PAL, un cadru video consta din doua campuri pentru producerea imaginii video. PAL foloseste 15 cadre/sec pentru a crea imaginea si a simula miscarea.

FRAMESTORE (DEPOZIT DE CADRE) Numele dat unui depozit video solid, de obicei construit in DRAM. Tehnic vorbind, implica depozitarea unei imagini sau cadru intreg, dar termenul este folosit mai general pentru a cuprinde un depozit de cateva linii pentru mai multe cadre.

FREQUENCY (FRECVENTA) Numarul oscilatiilor unui semnal pe o perioada data de timp (de obicei o secunda). De exemplu se defineste o frecventa subpurtatoare in sistemele analogice sau a frecventelor unui ceas in sistemul digital.

FULL MOTION VIDEO Termen general pentru imaginile in miscare afisate pe un ecran. Pentru sistemul PAL trebuie sa contina 168*576 pixeli @25 fps si 16,7 milioane culori.

GPI (General Purpose Interface) Interfata folosita pentru conectarea echipamentelor – de obicei prin contact inchis. Este simpla, si poate fi usor aplicata pe o gama larga de echipamente.

GRAY SCALE (SCARA DE GRI) Domeniul nivelelor de intensitate luminoasa de la alb la negru.

GUI (Graphical User Interface) (Interfata folosind grafica cu utilizatorul). Un set de comenzi ale sistemului de operare folosind grafica interactiva afisata pe ecran. Exemple din lumea computerelor sunt Apple Macintosh si Microsoft Windows.

HARD DISKS Un sistem alcatuit din 10 discuri rigide acoperite cu oxid magnetic, fiecare fiind capabil sa depoziteze date pe ambele parti si fiecare suprafata de inregistrare avand un cap scriere/citire, oricare dintre ele putand fi activate instantaneu. Hard disk-ul permite acces rapid la o cantitate mare de date.

HVS (Human Visual System) Studiu despre perceptiile vizuale umane punand in balanta reducerea largimii de banda a componentelor imaginii si calitatea cea mai buna a imaginii percepute. Perceptia vizuala umana permite spatiului color sa fie pus in balanta fata de intensitatea luminoasa continuta de imagine; multe din detaliile de culoare ale informatiei pot fi inlaturate fara pierderi observabile ale calitatii.

INTERLACED/NON INTERLACED (INTRETESERE) Un display "non-interlaced" parcurge liniile una dupa alta (asa numitul scan progresiv). Un display "interlaced" parcurge liniile alternativ, aceasta determinand licarirea (cazul televiziunii standard).

INTERPOLATION (INTERPOLARE) Proces folosit in sistemele de efecte digitale constand in medierea unui numar de pixeli pentru realizarea altuia nou. Daca e inevitabila repozitionarea si redimensionarea imaginii digitale e nevoie de pixeli diferiti fata de cei din imaginea originala. Pentru a obtine rezultate mai bune pixelii noi pot fi interpolati, adica evaluati potrivit mediei pixelilor anteriori.

JPEG (Joint Photographic Experts Group) Standard international pentru compresie de date. JPEG foloseste DCT si ofera date comprimate cu factor intre 5 si 100; sunt definite trei nivele de procesare nivelul de baza, extins si codificarea fara pierderi.

KEY (KEYING) Suprapunerea unei imagini peste alta.

KEYFRAME Cadru specific in dispozitivele de efecte speciale cu un set de atribute speciale (marime, rotatie, localizare) ce pot fi incredintate imaginii video.

LINEAR EDITING (EDITARE LINIARÃ) Proces de editare bazat doar pe secventa inregistrata pe rola sau caseta. Editarea liniara e considerata acum inceata, avand etape ce absorb cel putin 40% din timp. Fara interfete speciale digitale recorderele sunt considerate de asemenea liniare.

LUMINANCE (INTENSITATEA LUMINOASÃ) Elementul monocrom al unui semnal video color. In esenta, este luminozitatea sau intensitatea unei imagini video.

MIDI (Musical Instrument Digital Interface) Standard ce permite comunicarea intre instrumentele muzicale si dispozitivele electronice.

MJPEG (MOTION JPEG) Metoda de compresie video unde fiecare cadru sau camp este comprimat folosind JPEG.

MPEG (MOTION PICTURE EXPERTS GROUP) Standard international pentru compresie video si audio. Pentru a obtine compresie maxima se folosesc informatii din cadrele precedente (codificare inter-cadre) care face dificila oprirea si play-ul inapoi. Standardul MPEG-1 a fost original creat sa lucreze cu 1,2 Mbit/sec, viteza datelor pe CD-ROM, deci se poate realiza play din CD. Oricum, calitatea nu era suficienta pentru imagini TV. MPEG-2 a fost creat sa acopere o gama mai larga de cerinte, de la calitatea VHS pana la HDTV, cu ajutorul unor serii de algoritmi "profiluri" si "niveluri" de rezolutie a imaginii.

MULTISCANING Monitoarele care admit un set de frecvente de sincronizare orizontala si verticala, se ajusteaza singure automat dupa semnalul primit, fiind compatibile cu o gama larga de intrari video.

NOISE (ZGOMOT) Fluctuatii neregulate de nivel scazut. Toate semnalele video analogice contin zgomote aleatoare. Semnalele generate pur digital nu contin nici un zgomot – fapt ce poate deveni o problema in anumite conditii.

OPACITY (OPACITATE) Gradul de transparenta a unui pixel. Opacitatea e folosita in conjunctie cu imaginile suprapuse. De obicei o valoare a opacitatii egala cu 0 reprezinta o imagine complet transparenta; o valoare egala cu 100 reprezinta o imagine complet opaca.

OPTICAL DISKS Discuri folosind tehnici optice, de obicei lasere pentru inregistrare si redare. Ele ofera o capacitate mare de stocare pe o arie mica. Cel mai comun este discul compact (CD) de 5.25". CD-ul are viteza datelor mai mica decat la discurile fixe dar mai mare decat la cele flexibile.

PIXEL Cel mai mic element de imagine, data individuala, culoare sau imagine video.

QUANTIZING (CUANTIFICARE) Proces de esantionare a formelor de unda analogice care converteste nivelele de tensiune in date digitale.

RAID DISKS – Tablou redundant de discuri ieftine pentru inmagazinarea volumelor mari de date audio/video. RAID e folosit la editarea neliniara pentru a maximiza rata de transfer a datelor pentru cea mai buna calitate a imaginii. RAID e impartit in nivele.

RESOLUTION (REZOLUTIE) O masura a finetii detaliilor care pot fi vazute sau determinate intr-o imagine reprodusa. Numarul de pixeli din imagine (in PAL 720*576) nu influenteaza rezolutia finala ci doar rezolutia unei parti a echipamentului.

RESOLUTION INDEPENDENT Termenul se foloseste pentru descrierea echipamentelor ce pot opera cu mai multe rezolutii. Echipamentul specific TV e proiectat sa opereze cu o singura rezolutie desi, unele echipamente moderne – in special cele care folosesc standardul CCIR 601 – pot comuta intre formate specifice si formate de imagine de la 625/50 la 525/60. In contrast, calculatoarele pot lucra cu fisiere de orice dimensiune, deci aplicat unei imagini, apare termenul de rezolutie independenta.

RGB Rosu, galben, albastru – cele 3 culori primare din familia de culori.

ROTOSCOPE Procesul artistic cadru-peste-cadru de "retouching" a imaginii intr-un clip live.

RS 422 Standard de transmisie seriala al datelor pe distante medii (pana la 300m). Datele sunt transmise folosind semnalul ECL pereche in cazul operatiilor bi-directionale. Specificatia completa include 9 canale, conectori D-type si optional linii de semnal aditional. Este folosit pe larg pentru controlul legaturii posturi pentru un set de echipamente precum VTR-uri, mixere, etc.

SAMPLER Dispozitiv de esantionare a fragmentelor din inregistrare pentru prelucrarea lor digitala. Semnalul poate fi apoi editat si manipulat.

SAMPLING (ESANTIONARE) Proces corespunzator convertirii semnalului analog intr-o serie de valori digitale.

SC/H PHASE Legatura intre faza subpurtatoarei si marginea principala a sincronizarii orizontale.

SCSI (Small Computer Systems Interface) Interfata paralela folosita in general pentru transmiterea de date cu viteza mare. Pot fi conectate la magistrala SCSI maxim 8 dispozitive, de exemplu un controler si pana la 7 discuri.

SDI (Serial Digital Interface) Standard bazat pe o viteza de transfer de 270 Mbiti/sec. Este o interfata pe 10 biti, cu polaritate independenta si cu "scrambling" pentru ambele componente CCIR 601, compusa din video digital si 4 canale audio digital. Foloseste conector standard BNC 75 Ohm si cablu coaxial care e folosit de regula pentru video analog.

SEEK TIME (TIMPUL DE CÃUTARE) Timpul necesar harddisk-ului, floppy-ului sau CD-ului pentru a gasi o informatie.

SEQUENCER Software ce manipuleaza datele MIDI permitand inregistrarea lor.

SIGNAL TO NOISE RATIO (RAPORTUL SEMNAL – ZGOMOT) Este exprimat de obicei in dB. Echipamentul cu sursa digitala este capabil teoretic sa produca imagini fara zgomot, ceea ce ar insemna un raport semnal zgomot infinit.

SOLID STATE Termen generic dat circuitelor integrate si altor sisteme electronice continand parti care nu se afla in miscare.

SOLID STATE RECORDERS Dispozitivele de inregistrare care inmagazineaza date intregi in circuitele integrate. Folosite pe video, ele pot oferi acces aleator la orice cadru stocat dar costurile mari limiteaza folosirea depozitului la numai cateva secunde.

SPLINE Tehnica de acceleratie si deceleratie a imaginii precum si schimbarea unei secvente cu alta.

SRAM (Static Random Acces Memory) Tip de cip de memorie ce se comporta in general ca si RAM-ul dinamic cu exceptia faptului ca RAM-ul static retine datele in 6 tranzistori.

SUBCARIER (SC) (SUBPURTÃTOARE) Unda sinusoida continua ce reprezinta o portiune a unui semnal video color. E folosita pentru a purta informatia de culoare intr-un semnal video.

TBC (Time Base Corrector) (Corectia bazei de timp) Sincronizator care permite indepartarea erorilor din baza de timp, erori datorate proceselor mecanice de inregistrare si redare video pe caseta.

TIME CODE (Cod de timp) Sistem de identificare a cadrelor inregistrate pe videocaseta prin repartizarea pe fiecare cadru a unui numar in ordine cronologica, bazat pe ceasul orar.

TRUE RANDOM ACCES (ACCES ALEATOR) Capacitatea de a citi orice cadru in orice ordine. Permite un nou mod de editare total eliberat de orice fel de restrictii.

VAPOURWARE Software sau hardware promis si despre care s-a vorbit dar care nu este inca disponibil pe piata.

VARIABLE DATA RATE VIDEO (Video cu viteza datelor variabila) Capacitatea de a modifica in sistemele digitale cantitatea de date procesate pe cadru, pentru a acorda calitatea imaginii cu largimea de banda de transmisie disponibila. De asemenea, cand se folosesc JPEG sau MPEG cantitatea de date per cadru e variabila, bazata pe cantitatea de detalii din imagine. Viitoarele sisteme digitale de codificare/decodificare vor folosi o viteza a datelor variabila, cu header separat sau cu canal separat ce transfera informatii necesare pentru a programa decodificatorul astfel incat imaginea decodificata sa aiba calitate cat mai inalta.

WIBNI (Nu ar fi frumos daca…) Dorinta referitoare la caracteristicile noilor echipamente.

WORM (Scris o data, citit de mai multe ori) Dispozitiv de stocare, pe care datele, odata scrise, nu mai pot fi sterse sau rescrise. WORM ofera inregistrari cu densitate foarte mare si, e mobil, fiind foarte folositor la arhivare.

Y, (R-Y), (B-Y) Acestea sunt intensitatea luminoasa (Y) si semnale de diferite culori (R-Y) si (B-Y) ale componentelor video. Y este informatia despre intensitatea luminoasa, in timp ce, cele doua semnale furnizeaza impreuna informatia de culoare. Diferentele intre o culoare si intensitatea luminoasa sunt: luminozitatea – rosie si luminozitatea – albastra. Semnalele sunt derivate din sursa originala RGB.

ZERO WAIT STATE (Fara stare de asteptare) O stare de asteptare este o intarziere a procesorului in timp ce asteapta memoria mai inceata. Daca memoria lucreaza destul de repede astfel incat nu survin intarzieri, nu e necesara asteptarea. Aceasta situatie este cunoscuta sub numele de stare de asteptare zero.

ZITS Argou popular pentru erori in imaginea digitala.

Bibliografie

[Chmai98] Chip mai ’98

Revoluția audio digitală …MP3

Oliver Ibelshauser, Marius Ghinea

[IVAN98] Ion Ivan , Daniel Verniș – Compresia de date

Editura CISON București 1998

ISBN 973-96370-9-4

[JUD95] Judith Jeffcoate – Multimedia in practice Tehnology and applications

Pretince Hall (1995)

ISBN 0-13-123324-6

[MPG1] Karlheinz Brandenburg and Gerhard Stoll

“ISO-MPEG-1 Audio: a generic standard for coding of high-quality digital audio”

Journal of Audio Engineering Society

[Pcaug95] Cristi Frâncu ,Andrei Caraman

Compactarea datelor folosind arbori Huffman static

PcReport august ’95

[Pciul95] Ioan Iacob

Compresia imaginilor folosind teoria fractalilor

PcReport iulie ’95

[Pcmar95] Ioan Iacob

Algoritm de compresie audio

PC Report, martie 95

[SMEU97] Ion Smeureanu , Georgeta Drulă – Multimedia comcepte și practică

Editura CISON , București 1997

ISBN 973-96370-8-6

[SUS92] Susan Stone , Michael Buckland – Studies in multimedia – State of the art solutions in multimedia and hypertext

American Society for Information Science (1992)

ISBN 0-938734-59-1

[TON94] Tony Feldman – Multimedia

Editure: Blueprint, Chapman & Hall, 2/6 Boundary Row London SE 811N (1994)

ISBN 1-857130-10-3

Similar Posts