Nvidia ir aparatinis video spartinimas

Namuose naudoju kompiuterį, kurio parametrus daugelis pavadins “muziejiniais”. Tai AMD64 3000+ 1.8GHz procesorius kurio taktinis dažnis pakeltas iki 2.43GHz. Dažnio kėlimo metu buvo įdėta NVidia Geforce 6600GT vaizdo plokštė. Viena iš pagrindinių priežasčių, dėl kurių buvo keliamas dažnis tai nesugebėjimas užtikrintai atvaizduoti 720p video (jau nekalbant apie 1080p). Išsiaiškinau, kad aparatinis spartinimas naudojant linux OS pradeda veikti naudojant Geforce 8 ar naujesnės serijos vaizdo plokštes. Nors perkant Geforce 6600 GT ant dėžutės buvo priklijuota visokiu fullHD video ir panašių lipdukų, pasirodo spartinimas veikė tik Windows OS.

Pasiskaitęs NVidia tvarkyklių README, ten gi sąrašas yra GPU palaikančiu VDPAU. VDPAU tai atviro kodo biblioteka, kurios autorius NVidia. Ši biblioteka leidžia video dekodavimą bei apdorojimą (procesing) perlaisti GPU (GPU tai vaizdo plokštės procesorius).Tad su kiekvieną dieną audžiau mintį kaip čia man dabar iš kur nors naujesnį Geforc’ą iškrapščius. Aišku kaip visada su finansais ne prūdai, bet šiaip ne taip išsirinkau NVidia GT220 vaizdo plokštę. Pagal kokius parametrus aš ją išsirinkau dabar jau tiksliai nepamenu, bet svarbiausia buvo, kad ji palaikytu VDPAU, būtinai turėtu CUDA procesorius (kurio iki šios dienos taip ir neišbandžiau) ir kuo aukštesnius GPU bei RAM dažnius.

Koks didžiulis buvo nusivylimas, kaip įdėjus šią plokštę stebuklo nepamačiau. Tiesa 720p jau buvo galima lyg ir žiūrėti, bet apie 1080p kalbos nebuvo. Kažkaip jau net buvau susitaikęs su mintimi, kad geriau nebus. Čia ir buvo mano didžiausia klaida. Pasirodo, kad neužtenka suinstaliuoti NVidia tvarkyklių, kad sėkmingai veiktu video spartinimas. Visai atsitiktinai atnaujinant ar tai VLC ar MPLAYER paketą pamačiau, kad kaip papildoma priklausomybė yra VDPAU paketas. Pasidomėjus daugiau, nepraėjus nė dešimčiai minučių 720p bei 1080p jau buvo atvaizduojamas su minimaliais CPU apkrovimais!

Taigi, kad veiktu aparatinis spartinimas reikia suinstaliuoti paketus (su sąlygą, kad NVidia tvarkyklės jau įrašytos):

sudo pacman -Sy libvdpau vdpau-video

Jei naudojate VLC grotuvą tai jums reikia keliauti į menių punktą Įrankai -> Parinktys. Atsidariusiam dialoge kairėję pusėje pasirinkti Įvestis ir kodavimas ir uždėti varnelę Use GPU acceleration (experimental), pas mane dabar 1.1.13 versija. Jei neklystu aparatinis spartinimas atsirado tik VLC 1.1.* versijoje.

Jei naudojate MPLAYER (kaip aš) tai video galima žiūrėti su dar mažesniais CPU resursais. Tik prieš tai, kad nereikėtu kiekvieną kartą suvedinėti komandinės eilutės reikia paredaguoti konfigūracinę bylą kuri randasi adresu .mplayer/config (mano atvėju pilnas kelias yra /home/dinux/.mplayer/config). Mano konfigūracinė byla atrodo taip:

# Write your default config options here!
vo=vdpau
vc=ffmpeg12vdpau,ffwmv3vdpau,ffvc1vdpau,ffh264vdpau,ffodivxvdpau,
cache=8192

Pirmos dvi eilutės daugiau mažiau aiškios. Trečioji skirta cache’o padidinimui. Be šios eilutės kol MPLAYER kreipiasi į diską vaizdas akimirkai užstringa. Nuskaitęs informacijos kiekį, grotuvas ją atvaizduoja. Tai trunka ~5-10sek. vėliau vėl seka truktelėjimas, kol nuskaitoma antra porcija informacijos. Taigi, trečioji eilutė nustato 8Mb cache’o dydi. To užtenka, kad grotuvas skaitytu informaciją “į priekį” ir visada turėtu duomenų porciją, kurią reikia iškoduoti ir atvaizduoti.

Dabar žiūrint 1080p video naudojant MPLAYER jis CPU apkrauna iki ~4%:

[dinux@dinux ~]$ ps aux | grep mplayer
dinux     4451  8.3  <strong>3.7</strong> 122876 77760 ?        S    22:41   0:01 mplayer Eurosport-HD.Demo.Loop.1080p.H.264.MP2.2.0.mkv

Leave a Comment

  Wordpress Theme Protected By Wp Spam Blocker

By continuing to use the site, you agree to the use of cookies. more information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close