ΑΥΤΗ Η ΔΗΜΟΣΙΕΥΣΗ ΕΧΕΙ ΓΙΝΕΙ ΠΑΝΩ ΑΠΟ ΕΝΑ ΧΡΟΝΟ ΠΡΙΝ!
Το VDPAU(Video Decode and Presentation API for Unix) είναι μια ΕΛ/ΛΑΚ βιβλιοθήκη(libvdpau) που σχεδιάστηκε αρχικά από την Nvidia για τις κάρτες της σειράς GeForce 8 και νεότερες.
Η συγκεκριμένη βιβλιοθήκη επιτρέπει το λεγόμενο Hardware Acceleration μέσω της GPU(Graphics Processing Unit).
Το hardware που μπορεί να δουλέψει σωστά με την συγκεκριμένη βιβλιοθήκη, σύμφωνα με την σελίδα της Intel, είναι:
- Intel® GMA X4500HD.
- Intel® HD Graphics (in Intel® 2010 Core™ i7/i5/i3 processor family).
- Intel® HD Graphics 2000/3000 (in 2nd Generation Intel® Core™ i7/i5/i3 Processor family).
- Intel® HD Graphics 2500/4000 (in 3nd Generation Intel® Core™ i7/i5/i3 Processor family).
Το πακέτο αυτό στοχεύει σε κάρτες γραφικών (ή πιο συγκεκριμένα σε chipstets) που δεν έχουν κάποιο δικό τους τέτοιο API. Αν δούμε στην διαδρομή(για 64bit συστήματα)
ls /usr/lib/x86_64-linux-gnu/vdpau/
θα δούμε βιβλιοθήκες για nouveau (ή και για radeon), όχι όμως για Intel.
Το libvdpau-va-gl1 είναι ένας οδηγός VDPAU με το backend OpenGL/VAAPI.
Όπως γράφει και στο description του πακέτου:
Many applications can use VDPAU to accelerate portions of the video
decoding process and video post-processing to the GPU video
hardware. Unfortunately, there is no such library for many graphic
chipsets. Some applications also support VA-API but many of them,
including Adobe Flash Player, don’t.
This library proposes a generic VDPAU library. It uses OpenGL under
the hood to accelerate drawing and scaling and VA-API (if available)
to accelerate video decoding.
Ενεργοποίηση σε κάρτες γραφικών Intel
Εγκαθιστούμε τα παρακάτω πακέτα
sudo apt-get install mesa-vdpau-drivers vdpauinfo vdpau-va-driver libvdpau-va-gl1 dpkg-dev libva-intel-vaapi-driver
Αφού εγκατασταθούν σωστά, πλέον έχουμε διαθέσιμες τις απαραίτητες βιβλιοθήκες, καθώς και ένα configuration αρχείο μέσα στην διαδρομή /etc/X11/Xsession.d/ ονόματι 20vdpau-va-gl. Αν διαβάσετε το αρχείο θα δείτε πως όλα είναι comment (με άλλα λόγια το αρχείο δεν είναι προς ανάγνωση από τον Χ – δεν φορτώνεται).
Όπως προαναφέραμε το πακέτο είναι ακόμη σε πειραματική μορφή. Τώρα όμως που έχουμε τα απαραίτητα εγκατεστημένα, μπορούμε να το δοκιμάσουμε.
Ανοίγουμε ένα τερματικό και δίνουμε
export VDPAU_DRIVER=va_gl firefox
με αυτόν τον τρόπο θα ανοίξουμε την εφαρμογή firefox με hardware acceleration και καλό θα είναι να πάμε π.χ. στο youtube να προσπαθήσουμε να δούμε ένα βίντεο. Εκεί θα παρατηρήσουμε στο τερματικό τα παρακάτω μηνύματα
libva info: VA-API version 0.35.0 libva info: va_getDriverName() returns 0 libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so libva info: Found init function __vaDriverInit_0_35 libva info: va_openDriver() returns 0
αυτό που μας ενδιαφέρει εδώ, είναι το: va_openDriver() returns 0 . Αν γυρίσει άλλη τιμή, π.χ -1 (va_openDriver() returns -1) , τότε κάτι δεν πήγε καλά και δεν φορτώθηκε η βιβλιοθήκη που έπρεπε ή δεν βρέθηκε…κλπ.
Το ίδιο πείραμα μπορείτε να κάνετε και με άλλες εφαρμογές που σχετίζονται με αναπαραγωγή βίντεο.. π.χ
export VDPAU_DRIVER=va_gl smplayer
Αν είμαστε ευχαριστημένοι από την απόδοση, τότε μπορούμε να το ενεργοποιήσουμε μόνιμα κάνοντας μια επεξεργασία στο αρχείο
gksudo gedit /etc/X11/Xsession.d/20vdpau-va-gl
Θα πρέπει να κάνουμε uncomment δυο γραμμές εκεί μέσα και το αρχείο να γίνει όπως παρακάτω
# To enable the use of libvdpau-va-gl as the default VDPAU driver, # uncommont the following lines. See # `/usr/share/doc/libvdpau-va-gl1/README.Debian` for more details. [ ! -f /usr/lib/$(dpkg-architecture -qDEB_HOST_MULTIARCH)/vdpau/libvdpau_va_gl.so.1 ] || \ export VDPAU_DRIVER=va_gl
και φυσικά να το αποθηκεύσουμε.
Μπορούμε να διαβάσουμε τα περί πειραματικού πακέτου στο /usr/share/doc/libvdpau-va-gl1/README.Debian με έναν editor.
Test Case
Eδώ θα δούμε την διαφορά σε Video Processing με VDPAU και χωρίς. Με screenshots.
Θα χρησιμοποίσω τον SMPlayer που έχει ρύθμιση για την χρήση του vpdau.
Το βίντεο δεν είναι κάτι άλλο από ένα trailer σε 1080p όμως.
Χρησιμοποιούμε τις εντολές top και sudo intel_gpu_top για να παρακολουθήσουμε την επιβάρυνση. Το δεύτερο εργαλείο βρίσκεται στο πακέτο intel-gpu-tools.
Κάντε κλικ επάνω στις εικόνες για να ανοίξουν σε νέο παράθυρο σε πλήρες μέγεθος
Χωρίς VDPAU, δείτε την χρήση CPU (στην top) και την χρήση GPU (στην intel_gpu_top)
Με VDPAU κοιτάξτε τις διαφορές