sâmbătă, 6 decembrie 2014

Decomprimarea video hardware vs. decomprimarea video software la receivere satelit, cablu, Divx Playere, Media Playere și alte dispozitive similare

Am deschis acest subiect pentru a fi gazdă a discutiilor despre diferentele dintre decomprimarea prin accelerare video hardware si decomprimarea video software, la receivere satelit, Divx Playere etc. Subiectul nu este exhaustiv, ci prezinta doar principii de bază, intr-un mod mai simplu de inteles pentru publicul larg.

Fluxurile video redate de catre diverse dispozitive sunt de obicei comprimate, pentru ca altfel ar avea dimensiuni foarte mari, imposibil sau extrem de costisitor de utilizat in practica, din cauza ca ar ocupa un spatiu enorm de stocare sau foarte multa bandă de transmisie. Astfel, pentru a reduce dimensiunea fisierelor video si banda utilizata si implicit costurile, sunt folosite diverse comprimatoare si decomprimatoare, cunoscute de publicul larg ca si codecuri ( MPEG 2, MPEG 4, Xvid, HEVC etc ).

Un codec video permite asadar compresia sau decompresia fluxurilor video digitale. Formatul de date video comprimate respecta specificațiile unei singure compresii video. Insa există o relație complexă între calitatea video, cantitatea datelor necesare (de asemenea cunoscută ca rata de biți), complexitatea comprimării și algoritmul de decomprimare, erorile de date, întârzierea provocata de timpii necesari de comprimare / decomprimare etc. De asemenea, compresia este de obicei cu pierderi de calitate. Pentru diminuarea acestor efecte, inginerii, programatorii și matematicienii încearcă sa dezvolte o serie de solutii, lansând codecuri noi, care presupun insa alte instructiuni sau unele modificate.

Majoritatea receptoarelor ( de satelit, cablu etc ), televizoarelor, mediaplayerelor, DVD sau Divx Playerelor utilizeaza procesoare la frecventa mai mica ( si deci mai ieftine ), dar dedicate, care au printre functiile si instructiunile native si pe cele de decomprimare a anumitor standarde de compresie video, utlizand codecuri existente la momentul fabricarii respectivelor procesoare. Aceste tipuri de procesoare sunt incluse in categoria procesoarelor cu accelerare video hardware.


Un astfel de dispozitiv cu un procesor cu accelerare video hardware, de exemplu la frecventa de 400 MHz, poate furniza telespectatorului decomprimarea cursiva a imaginii la rezolutie HD, pe cand un alt procesor fara accelerare video hardware ( de exemplu un CPU de PC la 1,2 Ghz, deci de 3 ori mai mare ), dar care utilizeaza un soft pentru decomprimarea imaginii ( de exemplu un codec video software instalat in PC ) si/sau o placa video care nu are accelerare video hardware dedicata codecului respectiv are mari probleme in a realiza aceeasi functie.

Deci accelerarea hardware este utilizata de diverse dispozitive pentru a efectua anumite funcții dedicate mai rapid decât este posibil de efectuat de catre procesoarele "obisnuite", în modul software.

Accelerarea hardware poate fi realizata prinr-o unitate de procesare grafică inclusa in procesor sau separata si/sau prin procesoare cu anumite functii si instructiuni dedicate, cum ar fi cele de decomprimare a imaginii folosind intructiuni pentru anumite codecuri.

În mod normal, procesoarele sunt secvențiale, iar instrucțiunile sunt executate una cât una, pe rand. Astfel, a fost necesara utilizarea de diverse tehnici pentru a îmbunătăți performanța, iar accelerarea hardware in procesoare dedicate a fost una dintre aceste modalitati de a obtine performanță pentru scopuri bine determinate.

Principala diferență dintre decomprimarea video hardware și software este simultaneitatea, care ofera un avantaj semnificativ decomprimarii video hardware, ce devine astfel mult mai rapida decât cea software.

Simultaneitatea este proprietatea sistemului care permite ca mai multe calcule ( ce au rezultate care interacționează de asemenea intre ele ) sa fie executate in acelasi timp. Calculele pot sa fie executate in mai multe nuclee, in procesoare separate fizic ori prin partajarea mai multor fire de executie in același procesor. Aceasta ultima situatie este mai utilizata la receptoarele de satelit ori cablu sau la Divx Playere, cu exceptia celor care folosesc procesoare multi-nucleu ( modele mai noi si mai scumpe deocamdata) sau a celor care au procesor GPU dedicat ori inclus in CPU.

De asemenea, acceleratoarele hardware sunt proiectate pentru a efectua calcule intensive pentru un anumit scop, de exemplu decomprimarea unui flux video cu un anumit standard. Totusi, astfel de procesoare permit de obicei decomprimare mai multor tipuri de compresii. De asemenea, accelerarea hardware poate varia de la o mica unitate funcțională la un set mai complex de functii (de exemplu blocul de estimare a mișcării în imaginea format MPEG-2).

Pentru aceste procesoare cu accelerare hardware au fost de asemenea dezvoltate o serie de modele matematice pentru calcul simultan, inclusiv prin asa numitele rețele Petri, procese de calcul, modele de acces aleatoriu paralel, modelul Actor și limbajul de coordonare Reo.

Bineinteles, pe receptoarele cu Linux, cu Android si cu alte sisteme mai evoluate există si posibilitatea de a utiliza accelerarea hardware in diverse pluginuri sau playere software dedicate, create de comunitati de fani. Aceste pluginuri suplimentare se pot instala in astfel receptoare. De exemplu, Video Acceleration API ( Application programming interface ) este un astfel de set de rutine, aplicatii si instrumente care permite acestor dezvoltatori de software sa acceseze si utilizeze accelerarea video hardware a dispozitivelor pentru care sunt concepute respectivele pluginuri si addon-uri. Insa chiar daca un astfel de dezvoltator implementeaza codecuri noi in aceste pluginuri, decomprimarea pentru fluxurile video ce utilizeaza noile codecuri se va realiza tot software, cu dificultati pentru procesor.

Asadar, pe langa avantajele clare ( cost mult redus si performanta mare in decomprimarea fluxurilor video comprimate cu anumite codecuri ), dezavantajul principal al procesoarelor cu accelerarea video este marea dificultate ( si de obicei imposibilitatea ) de a adauga in firmware-ul dispozitivelor posibilitatea decomprimarii fluxurilor video comprimate cu codecuri mai noi, diferite de cele pentru care a fost intital conceput procesorul respectiv.

Aceasta decomprimare software a fluxurilor video cu noi codecuri adaugate software ar depasi cu mult capacitatile si resursele procesorului, conceput initial doar pentru decomprimarea hardware a imaginii comprimate cu codecuri mai vechi. De aceea, producatorii de receptoare de satelit, Divx playere si alte dispoztive similare nu pot realiza updateuri de firmware care sa ofere decomprimarea cu codecuri mai noi, utilizand acelasi procesor care nu a suportat nativ aceste noi tipuri de instructiuni de decomprimare in modul hardware.

Bineinteles, teoretic producatorii pot implementa in firmware-ul dispozitivului codecuri noi pentru decomprimarea video software, insa exista marea probabilitate ca puterea procesorului de a efectua calcule in mod software sa nu ofere o imagine cursiva, cel putin la 24-25 cadre pe secunda, ci una cu un FPS foarte mic, poate chiar de 1-3 cadre pe secunda si cauzand de asemenea si suprasolicitarea si supraincalzirea procesorului. Astfel, producatorii se rezuma de obicei doar la implemetarea de codecuri audio noi in firmware, mai ales daca exista si un procesor audio separat in dispozitiv.


3 comentarii despre subiectul „Decomprimarea video hardware vs. decomprimarea video software la receivere satelit, cablu, Divx Playere, Media Playere și alte dispozitive similare”:
Anonim

Nimic despre noul codec HEVC...

Laurentiu

Accest articol este dedicat comparatiei dintre decomprimarea video hardware si software, nu codecului HEVC, esti pe langa subiect.

Dar exista destul informatii si teste de receptie chiar aici pe site despre HEVC :

http://hdsatelit.blogspot.ro/2014/09/noutati-privind-utilizarea-hevc-in.html

http://hdsatelit.blogspot.ro/2014/11/germania-va-trece-la-standardul-dvb-t2.html

http://hdsatelit.blogspot.ro/2014/01/receptia-unei-transmisii-prin-satelit.html

http://hdsatelit.blogspot.ro/2013/06/primul-canal-4k-primul-receiver-4k-hevc.html

http://hdsatelit.blogspot.ro/2014/11/primul-concert-difuzat-4k-ultra-hd-in.html

http://hdsatelit.blogspot.ro/2013/08/codec-video-cu-compresie-de-25-ori-mai.html

http://hdsatelit.blogspot.ro/2014/05/eutelsat-lansat-prin-satelit-un-canal.html

... si multe altele, cauta in casuta de cautare cuvantul HEVC.

Si daca nu ajung aceste informatii de aici de pe site si vrei mai multe informatii tehnice despre noul codec HEVC, pe Wikipedia gasesti o pagina dedicata:

http://en.wikipedia.org/wiki/High_Efficiency_Video_Coding

Unknown

Da, ai dreptate; Multumesc pentru link-uri!

Trimiteți un comentariu

☑ Comentariile conforme cu regulile comunității vor fi aprobate în maxim 10 ore.

Top 5 articole în ultimele 7 zile