X-videolaajennus

X-videolaajennus , joka usein lyhennetään muotoon XVideo tai Xv , tarjoaa videolähtömekanismin X Window Systemille . Protokollan kehitti alun perin David Carver, ja sen nykyinen versio (toinen) kirjoitettiin heinäkuussa 1991 . Sen päätarkoitus tähän päivään asti on toistettavan videon laitteiston skaalaus ( näytönohjaimet ovat varusteita ) sen katsomiseksi koko näytön tilassa. Ilman XVideoa tämä työ olisi suoritettava kokonaan prosessorin toimesta., mikä vaatisi enemmän resursseja ja voisi joissakin tapauksissa johtaa toiston hidastumiseen tai kuvan huononemiseen. Lisäksi X-videolaajennus käyttää näytönohjainta väriavaruuden muuntamiseen . Sen avulla voit laitteistolla säätää näytettävän videovirran kirkkautta, kontrastia ja sävyä.

Tämän laajennuksen käyttäminen edellyttää kolme asiaa:

Useimmat nykyaikaiset näytönohjaimet tarjoavat tarvittavat toiminnot XVideolle. Niitä kutsutaan yleisesti skaalauksen ja YUV -muunnoskiihdytyksen laitteistotueksi tai yksinkertaisesti laitteistokiihdytetyksi 2D-grafiikaksi . X-palvelin XFree86 (UNIX-, Linux- ja osittain Mac OS X -käyttöjärjestelmille) tukee XVideo-laajennusta versiosta 4.0.2 lähtien. Voit varmistaa, että X-palvelimesi tukee tätä laajennusta, käyttämällä xdpyinfo- apuohjelmaa . Ja tarkistaaksesi, että nykyinen näytönohjain tukee tarvittavia toimintoja, voit käyttää xvinfo- ohjelmaa .

Jäljentäminen ja käsittely

X-ikkunassa käytetyt suositut videotoisto-ohjelmat, kuten MPlayer , MythTV tai xine , tukevat yleensä jo videon lähettämistä XVideon kautta. Siksi on viisasta käyttää tätä laajennusta aina, kun asennettu näytönohjain sallii sen ja ajurit tukevat sitä. Kiihtyvyys on havaittavissa jopa tietokoneissa, joissa on nopeat prosessorit.

Huolimatta siitä, että protokolla tarjoaa mahdollisuuden lukea ja kirjoittaa videovirtoja näytönohjaimista ja niihin, nykyään kysytyimpiä toimintoja ovat XvPutImage ja XvShmPutImage . Asiakkaat yksitellen purkaa kehykset ja välittää ne näytönohjaimelle laitteiston skaalausta, muuntamista ja näyttöä varten.

Näytä

Kun kuva on skaalattu ja valmisteltu, ei voi enää tehdä muuta kuin näyttää se. Tässä vaiheessa on useita tapoja nopeuttaa videon ulostuloa. Ja koska täysi kiihtyvyys tarkoittaa, että näytönohjain on vastuussa videon skaalauksesta, muuntamisesta ja tulostamisesta, erityinen menetelmä riippuu siitä, missä kuva tarkalleen näytetään.

Yhdistelmäikkunanhallinnan rooli

Linuxissa tarkka näyttötapa riippuu suuresti käytetystä ikkunanhallinnasta . Oikein asennettujen Intelin , ATI :n tai nVidian näytönohjainkorttien GPU -ajureilla tiettyjä ikkunanhallintaohjelmia, joita kutsutaan komposiittiikkunoiden hallintaohjelmiksi , voidaan käyttää käsittelemään jokaista näytettävää ikkunaa itsenäisesti. Tämä saavutetaan tulostamalla kunkin ikkunan sisältö erityiseen puskuriin ja yhdistämällä ne sitten yhdeksi kuvaksi. Kun yksittäisiä ikkunoita renderöidään omassa puskurissaan, niihin voidaan tässä vaiheessa lisätä videorenderöityä videota pintakuviosuodattimen kautta, ennen kuin ikkuna on lopullisesti piirretty. XVideoa voidaan käyttää videon nopeuttamiseen OpenGL Framebuffer Object - tai pbuffer-laajennusten kautta.

Metacity - ikkunanhallinta toteuttaa tämän menetelmän. Sekoitus toteutetaan käyttämällä 3D-grafiikan laitteistokiihdytystä, kuten GLX_EXT_texture_from_pixmap. Muun muassa tämän avulla voit näyttää itsenäisesti useita videovirtoja yhdellä näytöllä. Muut kokoonpanopäälliköt Beryl , Compiz ja Compiz Fusion tekevät samoin. Compiz Fusion sisältyy Ubuntu Linux 7.10:een ja uudempiin. Se aktivoituu automaattisesti, jos järjestelmä havaitsee sitä tukevan laitteiston.

Xv-laajennus ei kuitenkaan ole käytettävissä tietokoneissa, joissa on rajoitettu laitteistotuki OpenGL:lle, joissa ei ole Framebuffer Object- tai pbuffer-tukea, kuten XGL :ää käyttävissä järjestelmissä.

Väriavainkysymykset

Syy, miksi ikkunoiden hallintaohjelmat eivät suoraan tue sekoittamista, on se, että on erittäin vaikea määrittää, mihin videovirta lähetetään, koska kiihdytyksen aikana näytön sisältö muuttuu yhdeksi kuvaksi. Ainoa tapa tarjota videolähtöä on käyttää laitteistopeittokuvaa värinäppäimen avulla . Kun kaikki ikkunat on piirretty, ainoat tiedot ikkunoista ovat niiden koot ja koordinaatit. Mutta videon näyttämiseen tarvitaan myös tietoa siitä, miten ja mitkä ikkunat menevät päällekkäin. Tätä varten videota toistavat ohjelmat maalaavat tulostusalueen tasavärillä (esimerkiksi vihreällä). Sitten, kun kaikki ikkunat ovat näkyvissä, päällekkäiset ikkunat voivat peittää osan videosoittimen ikkunasta, mutta näytönohjain tarvitsee vain skannata tietyt näytön koordinaatit ja jos on vihreitä pisteitä, videovirta pitäisi näyttää tässä paikassa. Samanlaista menetelmää käytettiin laitteistokiihdytettyyn videolähtöön Microsoft Windows XP :ssä (ja aikaisemmissa), koska sen ikkunanhallinta oli niin tiukasti integroitu käyttöjärjestelmään, ettei sitä ollut mahdollista nopeuttaa itse.

Jos ikkunanhallinta ei siis ole komposiitti, videon tuottamiseen käytetään väriavainta laitteistopeittokuvaa, kuten yllä olevassa kappaleessa on kuvattu. Tämän menetelmän käyttäminen voi kuitenkin tehdä oikean kuvakaappauksen saamisen mahdottomaksi sovelluksilla, jotka käyttävät Xvideota. Videota ei ehkä voi myöskään lähettää toiseen näyttöön, jos vain yksi laitteistopeitto on tuettu.

Ongelmia uusien näytönohjainten kanssa

DirectX 10: n julkaisun vuoksi useat nykyaikaiset näytönohjaimet ovat leikanneet tai muuttaneet pintakuviopeittotukea. Tämä vaikutti myös nVidia GeForce 8 -sarjan näytönohjaimiin. Kaikki GeForce 8800 -näytönohjaimet, mukaan lukien 8800GT ja 8800GTS, tukevat nyt vain yhtä pintakuviopeittokuvaa päänäytössä. Tämän seurauksena ne eivät voi tulostaa oikein useampaa kuin yhtä videovirtaa käyttämällä laitteistokiihdytystä alustasta riippumatta.

Tuloksena oli huono videotoisto ei-DirectX 10 -käyttöjärjestelmissä, mukaan lukien Windows XP ja Linux XVideoa käyttävillä. Nämä muutokset vahingoittivat myös monia kokoonpanojohtajia, mukaan lukien Compiz ja jossain määrin Metacity .

Katso myös

Linkit