Extensia video X

Extensia video X , adesea scurtată la XVideo sau Xv , oferă un mecanism de ieșire video pentru sistemul X Window . Protocolul a fost dezvoltat inițial de David Carver, iar versiunea sa actuală (a doua) a fost scrisă în iulie 1991 . Scopul său principal până în prezent rămâne scalarea hardware ( plăcile video sunt implicate ca echipament ) a videoclipului redat pentru a-l vizualiza în modul ecran complet. Fără XVideo, această muncă ar trebui făcută în întregime de procesor., care ar necesita mai multe resurse și ar putea duce în unele cazuri la o încetinire a redării sau deteriorarea imaginii. În plus, extensia video X folosește placa video pentru conversia spațiului de culoare . Cu acesta, puteți regla hardware luminozitatea, contrastul și tonul fluxului video afișat.

Pentru a utiliza această extensie, sunt necesare și suficiente trei lucruri:

Cele mai multe plăci grafice moderne oferă funcționalitatea necesară pentru XVideo. Ele sunt denumite în mod obișnuit suport hardware pentru scalare și accelerare a conversiei YUV sau pur și simplu grafică 2D accelerată de hardware . Serverul X XFree86 (pentru sistemele de operare UNIX, Linux și parțial Mac OS X) acceptă extensia XVideo începând cu versiunea 4.0.2. Pentru a vă asigura că serverul dvs. X acceptă această extensie, puteți utiliza utilitarul xdpyinfo . Și pentru a verifica dacă placa video actuală acceptă funcțiile necesare, poți folosi programul xvinfo .

Reproducere și prelucrare

Programele populare de redare video utilizate în X Window, cum ar fi MPlayer , MythTV sau xine , au de obicei deja suport pentru redarea video prin XVideo. Prin urmare, este înțelept să utilizați această extensie oriunde placa video instalată o permite și driverele o acceptă. Accelerația va fi vizibilă chiar și pe computerele cu procesoare rapide.

În ciuda faptului că protocolul oferă posibilitatea de a citi și scrie fluxuri video de pe și către plăcile video, astăzi cele mai solicitate funcții sunt XvPutImage și XvShmPutImage . Clienții decodifică cadrele unul câte unul și le transmit plăcii video pentru scalare hardware, conversie și afișare.

Afișează

Odată ce imaginea a fost scalată și pregătită, singurul lucru rămas de făcut este să o afișați. Există mai multe modalități de a accelera ieșirea video în această etapă. Și deoarece accelerația completă implică faptul că placa video este responsabilă pentru scalarea, conversia și ieșirea videoclipului, metoda specifică va depinde de locul exact în care va fi afișată imaginea.

Rolul managerului de ferestre compozite

Pe Linux, metoda exactă de afișare depinde foarte mult de managerul de ferestre utilizat . Cu driverele GPU instalate corespunzător pentru plăcile grafice de la Intel , ATI sau nVidia , anumite manageri de ferestre, numite manageri de ferestre compozite , pot fi utilizați pentru a gestiona fiecare fereastră afișată în mod independent. Acest lucru se realizează prin ieșirea conținutului fiecărei ferestre într-un buffer special și apoi combinându-le într-o singură imagine. În timp ce ferestrele individuale sunt redate în propriul buffer, videoclipul redat video poate fi adăugat la ele în acest moment printr-un filtru de textură, înainte ca fereastra să fie în sfârșit desenată. XVideo poate fi folosit pentru a accelera ieșirea video prin OpenGL Framebuffer Object sau extensiile pbuffer.

Managerul de ferestre Metacity implementează această metodă. Amestecarea este implementată folosind o funcție de accelerare hardware grafică 3D, cum ar fi GLX_EXT_texture_from_pixmap. Printre altele, acest lucru vă permite să afișați în mod independent mai multe fluxuri video pe un singur ecran. Ceilalți manageri de compoziție Beryl , Compiz și Compiz Fusion fac același lucru. Compiz Fusion este inclus în Ubuntu Linux 7.10 și versiuni ulterioare. Se activează automat dacă sistemul detectează hardware care îl acceptă.

Cu toate acestea, pe computerele cu suport hardware limitat pentru OpenGL, fără suport pentru Framebuffer Object sau pbuffer, ca și pe sistemele care utilizează XGL , extensia Xv nu va fi disponibilă.

Probleme cheie de culoare

Motivul pentru care managerii de ferestre nu acceptă direct amestecarea este că este foarte dificil să se determine unde să iasă fluxul video, deoarece în timpul accelerării, conținutul ecranului se transformă într-o singură imagine. Singura modalitate de a oferi ieșire video este să utilizați o suprapunere hardware folosind o cheie de culoare . După ce toate ferestrele sunt desenate, singurele informații disponibile despre ferestre sunt dimensiunile și coordonatele lor. Dar pentru a afișa videoclipuri, sunt necesare și informații despre cum și ce ferestre se suprapun. Pentru a face acest lucru, programele care redă video pictează peste zona de ieșire cu o culoare solidă (să zicem, verde). Apoi, când toate ferestrele sunt afișate, ferestrele suprapuse pot acoperi o parte din fereastra playerului video, dar placa video va trebui doar să scaneze anumite coordonate ale ecranului și dacă există puncte verzi, atunci fluxul video ar trebui să fie afișat în acest loc. O metodă similară a fost folosită pentru ieșirea video accelerată hardware în Microsoft Windows XP (și mai devreme), deoarece managerul său de ferestre a fost atât de strâns integrat cu sistemul de operare încât nu a fost posibil să-l accelereze singur.

Astfel, dacă managerul de ferestre nu este compus, atunci o suprapunere hardware cu cheie de culoare este utilizată pentru a ieși video, așa cum este descris în paragraful de mai sus. Cu toate acestea, utilizarea acestei metode poate face imposibilă obținerea unei capturi de ecran corecte cu aplicațiile care utilizează Xvideo. De asemenea, este posibil să nu fie posibilă ieșirea video pe un al doilea monitor dacă este acceptată o singură suprapunere hardware.

Probleme cu noile plăci grafice

Datorită lansării DirectX 10, o serie de plăci grafice moderne au tăiat sau schimbat suportul pentru suprapunerea texturii. Acest lucru a afectat și plăcile video din seria nVidia GeForce 8. Toate plăcile video GeForce 8800, inclusiv 8800GT și 8800GTS, acceptă acum o singură suprapunere de textură pe monitorul principal. Ca urmare, nu pot scoate în mod corespunzător mai mult de un flux video folosind accelerarea hardware, indiferent de platformă.

Rezultatul a fost redarea video slabă pe sisteme de operare non-DirectX 10, inclusiv Windows XP și Linux folosind XVideo. Aceste modificări au afectat, de asemenea, mulți manageri de compoziție, inclusiv Compiz și, într-o oarecare măsură, Metacity .

Vezi și

Link -uri