|
W chwili obecnej coraz częściej oglądamy filmy o dużej rozdzielczości. Pobierane z internetu materiały są naprawdę coraz wyższej jakości i pochłaniają więcej zasobów. Filmy takie to nie tylko dużo mega na dysku, ale odtworzenie ich kosztuje wiele z mocy naszego procesora. Ale tak być nie musi. Możemy przecież zwalić brudną robotę na procesor karty graficznej. Użytkowników kart NVidia chciałbym zainteresować czymś co jest odpowiednikiem DxVA (DirectX Video Acceleration) API dla Windows.
VDPAU czyli (Video Decode and Presentation API for Unix) to bibloteki umożliwiające przeniesienie na kartę graficzną dekodowania i post-processingu wideo (w części lub całości). Nie chcę rozpisywać się zbytnio na temat samego VDPAU. Przejdźmy do informacji praktycznych. Z dobrodziejstwa tej technologi skorzystać mogą posiadacze kart graficznych NVidia od seri 8. (z wyjątkiem 8800 Ultra, 8800 GTX, 8800 GTS) z zainstalowanymi sterownikami (zamkniętymi niestety) Nvidi w wersji co najmniej 180.06. No i oczywiście program który to umożliwi jej wykorzystanie. Ja oprę się chyba na najbardziej popularnym odtwarzaczu Mplayer który już od ponad roku wspiera wyjście VDPAU. By ponownie nie wynajdywać koła posiadaczy kart NVidia odsyłam do http://en.wikipedia.org/wiki/VDPAU by zweryfikowali czy ich karta wspiera tą technologię i w jakim stopniu. Osobiście posiadam pasywnego staruszka 8500 GT i go wykorzystuję do tych celów. Jeśli posiadacie kartę wspierającą w pełni VDPAU (patrz zamieszczony link do Wikipedii) możecie wykorzystać ją do dekodowania przy użyciu kartu graficznej większości formatów, ale szczególny zysk daje ona przy oglądaniu filmów HD wysokiej jakości 720 lub 1080. Przy zwykłych filmach obciążenie procesora jest niewielkie, tak przy materiale dużej jakości przy użyciu kodeka H.264 może być bardzo duże a już pierwsze karty wspierające VDPAU świetnie sobie z nim poradzą.
By Mplayer wykorzystał do dekodowania materiału wideo naszą kartę graficzną precyzujemy wyjście VDPAU:
mplayer -vo vdpau
Możemy zrobić to również na stałe (polecam) w pliku ~/.mplayer/config dopisując linię:
vo=vdpau
Jest już dobrze, ale to jeszcze nie koniec. Uruchamiając film w poniższy sposób:
mpalyer -vo vdpau film.mkv
materiał zostanie przekazany na wyjście vdpau ale nadal będzie dekodowany przez procesor. By procesem dekodowania zajęła się karta graficzna należy jeszcze wskazać kodek. Dala filmu w kontenerze matroska (mkv) h.264 będzie to kodek ffh264vdpau:
mplayer -vo vdpau -vc ffh264vdpau film.mkv
Teraz procesor nie będzie obciążony dekodowaniem waszego filmu i jego użycie będzie na normalnym "spoczynkowym" poziomie a całą pracą zajmie się karta.Poniżej składnia dla poszczególnych kodeków:
MPEG: mplayer -vo vdpau -vc ffmpeg12vdpau film.mpg
H.264: mplayer -vo vdpau -vc ffh264vdpau film.mkv
WMV3: mplayer -vo vdpau -vc ffwmv3vdpau film.wmv
VC-1: mplayer -vo vdpau -vc ffvc1vdpau fimm.wmv
Polecam wykorzystanie skojarzeń plików. W moim systemie pliki mkv są otwierane poleceniem mplayer -vo vdpau -vc ffh264vdpau, cała reszta mplayer -vo vdpau (bez precyzowania kodeka bo moja karta i tak nie zapewnia im akceleracji). Robię tak dlatego bo zauważyłem, że wyjście VDPAU ma podobne właściwości jak stare dobre SDL, czyli umożliwia wyświetlenie napisów pod filmem a nie na nim. Oczywiście jest tak tylko gdy ten "czarny pasek" pod filmem jest dostępny co w dobie monitorów 16:9 jest rzadkie. Ale użytkownicy monitorów 4:3 i 16:10 mogą z tego skorzystać.
Na koniec kilka moich uwag. Mocniejsze procesory poradzą sobie z dekodowaniem bez problemu, jeszcze pozostanie zapas. Lecz w przypadku słabszych maszyn i notebooków posiadających kartę Nvidia jest to doskonałe rozwiązanie. Bardzo fajnie sprawdza się również na platformie Nvidia Ion, gdzie sam porcesor Atom nie radzi sobie z materiałem dużej jakości. W moim przypadku użycie procesora przez mplayer spada z około 40%(materiał 720) lub 70% (materiał 1080) do poziomu 2-3% Dodam że obciążenie dekodowaniem karty graficznej nie "męczy" jej za bardzo. Temperatura mojego pasywnie chłodzonego GPU rośnie o 2-3 stopnie. Oczywiście mplayer to nie jedyny program mogący wykorzystać VDPAU, można go również uzyć np. w xine i mythtv.
Posiadacze kart ATI nie skorzystają z dobrodziejstw VDPAU, lecz i dla nich mam dobrą nowinę. Pojawił się mpalyer-vaapi wspierający sprzętową akcelerację na kartach ATI. Info tutaj: http://www.splitted-desktop.com/~gbeauchesne/mplayer-vaapi/ |